我有以下網址MVC剃刀路由.mp3文件
Call/GetAudio/f9715595-a540-4add-8419-f9cdf906c7ec.mp3
現在的問題是上述.MP3文件實際上並不存在,而我希望它去「呼叫管理」,「GetAudio」功能,然後將返回字節數組作爲FileResult。
我想我需要在global.asax中爲此配置一些路由,這是可以實現的嗎?
基本上我希望所有.mp3文件都通過路由。
我有以下網址MVC剃刀路由.mp3文件
Call/GetAudio/f9715595-a540-4add-8419-f9cdf906c7ec.mp3
現在的問題是上述.MP3文件實際上並不存在,而我希望它去「呼叫管理」,「GetAudio」功能,然後將返回字節數組作爲FileResult。
我想我需要在global.asax中爲此配置一些路由,這是可以實現的嗎?
基本上我希望所有.mp3文件都通過路由。
所有路徑都將經過路由,而不管其擴展名。
(假設IIS正確配置爲使用ASP.Net作爲通配符處理程序)
只需製作一條正常路線。
請注意,沒有理由在URL中包含.mp3
;只要確保在響應中包含適當的Content-Type
,無論URL如何,您都應該這樣做。
是的,我知道沒有理由包含.mp3文件(或URL中的任何擴展名)。然而,我需要這個非常具體的目的 - 我正在開發jquery player + jquery mobile for Android,並且從我收集它需要.mp3文件強制android下載文件,否則它認爲該url無效,並且會甚至沒有嘗試下載它 - 因此jquery播放器無法播放該文件,因爲它沒有下載。 – friend
就像你說的,當我嘗試url時,我收到了IIS錯誤,提示「文件未找到」。構建IIS是實現這一目標的唯一方法嗎? – friend
應將IIS配置爲對所有請求使用ASP.Net。如果不是,你應該解決這個問題。 – SLaks
這裏有一個類似的答案,只是它提供的圖像,而不是音頻文件,但原則是相同的。
Can an ASP.NET MVC controller return an Image?
簡單地創建一個控制器動作,服務於MP3的。然後,您可以放棄.mp3文件擴展名,因爲控制器將僅提供mp3。您的路由將是一條正常路由{Controller}/{Action}/{id}
對不起,這不回答我的問題。另一篇文章希望URL不帶擴展名,以返回物理上存在的圖像 - 而我需要帶.mp3擴展名的網址 - 根據我的其他評論來欺騙android/jquery播放器。 – friend
SLaks評論是現貨'但是,這聽起來不太可能。 Android應該閱讀Content-Type,而不是URL擴展名。 ' –
只是通過您的控制器提供.mp3文件類型。然後你可以放下'.mp3'文件擴展名,因爲控制器只能提供mp3。您的路由將是一個正常的路由'{Controller}/{Action}/{id}' –