MVC маршрутизация требует ".cshtml" в URL
У меня есть сайт MVC4, работающий нормально на 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", и что я могу с этим поделать?