public class RouteConfig
{
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "Letter",
url: "{Home}/{Letter}/{ListId}",
defaults: new { controller = "Home", action = "Letter", ListId=1}
);
routes.MapRoute(
name: "words",
url: "{Home}/{words}/{WListId}",
defaults: new { controller = "Home", action = "words", WListId ="w1" }
);
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id= UrlParameter.Optional }
);
}
cshtml:Как дать несколько маршрутов в route.config файле
@Html.ActionLink("Home", "Index", "Home")
@Html.ActionLink("Letter", "Letter/1", "Home")
@Html.ActionLink("Words", "words/w1", "Home")
Я делаю это в route.config
и .cshtml
соответственно, но каждый раз, когда он перенаправляет меня на страницу письма, даже когда я нажимаю «слова» или «дом». Когда я нажимаю слова или дома, он меняет URL-адрес, но не меняет вид. Может ли кто-нибудь предложить, как указать маршрут в файле route.config? Что случилось с этим кодом?
Поскольку вы первый маршрут соответствует всем введенным вами значениям (вы также можете удалить первые 2). Если вам нужен конкретный маршрут для 'Letter', где вы используете метод public PublicResult Letter (int ListId), тогда он должен быть« url: »Home/Letter/{ListId},' - no '{' and '} 'вокруг контроллера и действия, а затем его' @ Html.ActionLink («Letter», «Letter», «Home», new {ListId = 1}, null) ' –