Мой проект ASP.NET MVC, кажется, игнорирует значения по умолчанию по умолчанию, когда составляет URL. Например, Url.Action("Index", "Home")
возвращает , тогда как он должен вернуть только /
(что я видел на всех моих других веб-сайтах MVC). У него нет никаких проблем с с использованием URL-адресов, например. посетив http://myserver/
, контроллер и действие по умолчанию найдены правильно.MVC игнорирует параметры маршрута по умолчанию и отображает полный URL «/ Home/Index» вместо корня
Как я могу исправить поведение? (Обратите внимание, что я нашел questions вопрос, как достичь такого поведения, но никто, кажется, страдает от этой противоположной проблемы.)
Проект ничего особенного, никаких обработчиков пользовательских маршрутизации и т.д., а также конфигурация маршрутизации достаточно просто:
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.IgnoreRoute("LoginHandler");
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{*id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
}
(. *
есть, потому что некоторые действия использовать произвольные строки в качестве идентификаторов, которые могут содержать вложенные слэш, и без звездочки, маршрут не совпадает с такими адресами)