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", и что я могу с этим поделать?

0 ответов

Другие вопросы по тегам