私はMVC4 Webサイトをdevで正常に実行しています。運用ルーティングに公開しようとすると機能しません。私が持っている唯一のルールはデフォルトです:
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "General", action = "Index", id = UrlParameter.Optional }
);
ただし、運用サーバー (IIS7.5 - dev と同様) では、次のいずれかが 404 で失敗します。
<domain>/Home
<domain>/Home/Index
プレーン<domain>/
は 403 で失敗します。
注: このすべては、ルート デバッガーの使用中に行われます
遊んでいると、次の好奇心に出くわしました。
<domain>/Home/Index.cshtml/3
実際にルートのデバッグページに移動し、一致すると主張しました
controller Home
action Index.cshtml
id 61
さらに遊んでみると、「.cshtml」がどこにあるかは問題ではなく、そこにある限り機能することがわかりました。例:<domain>/.cshtml/Index/4
一致
controller .cshtml
action Index
id 4
なぜ「.cshtml」文字列が必要なのですか?どうすればよいですか?