MVC 3では問題はありませんでしたが、今はMVC4に移行しました。
URLは次のようになりました。
{controller}/{action}/{id}
/podcast/file/PODCAST-01.MP4
ここで、PODCAST-01.MP4はIDです。コントローラにヒットすると、コントローラはファイルをクライアントに送信します。これは、ファイルをダウンロードした人の数を簡単に数えることができるように、この方法で行われました。
ただし、現在、Webサーバーはそこにファイルがあるはずだと考え、404エラーを出します。私は自分の404エラーページを作成し、/ podcast / file?id = PODCAST-01.MP4でリダイレクトすることでこれを回避しようとしましたが、iTunesがそれを好きではないので、これは機能しません。 「?」。
新しいルートを作成してみました:
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}.{format}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional, format = UrlParameter.Optional });
しかし、それはルーティングを壊したようです。どんな助けでも素晴らしいでしょう。