При попытке сгенерировать ссылку HTML, используяHtml.ActionLink генерирует неправильный URL, aslways добавление терминала/к URL
@Html.ActionLink("Edit Carrier", "EditCarrier", "CustomerCare")
Я бы ожидать, что она не генерирует URL /CustomerCare/EditCarrier/
, но независимо от того, что вид Я размещаю его в URL-адресе, который всегда генерируется как /Terminal/CustomerCare/EditCarrier/
, и я не уверен, почему /Terminal/
добавляется к маршруту. Это мой первый раз, когда я не использовал маршрутизацию атрибутов, и это не вариант использования этого проекта. Глядя вокруг на установку веб-I мой файл RouteConfig.cs
как:
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
routes.MapRoute(
name: "Terminals",
url: "Terminal/{controller}/{action}/{id}",
defaults: new { id = UrlParameter.Optional }
);
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
}
Что я здесь отсутствует?
Есть ли модификация, которую я могу внести в 'HTML.ActionLink', чтобы она не попала в маршрут терминала? В документах, которые я читал, говорится, чтобы перечислить маршруты от самых определенных до наименьших, и мне нужен этот маршрут. Терминал/URL-адрес будет совпадать с чем-то вроде дюжины контроллеров. – Matthew
Возможно, терминалы должны быть областью MVC? – Carl
@MatthewVerstraete Я обновил свой ответ. Вы можете использовать '@ Html.RouteLink()' для указания маршрута. –