Asp.net MVC Routelink 空控制器参数
Asp.net MVC Routelink null controller parameter
我有两条路线,默认一条
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
我又加了一条路由,有时参数会是一个字符串
routes.MapRoute(
name: "ByName",
url: "{controller}/{action}/{name}",
defaults: new { controller = "Home", action = "Index", name = UrlParameter.Optional }
);
当我在 RouteLink 中使用 "ByName" 路由时,URL 没问题,但我的控制器中的参数为空
在视图中:
@Html.RouteLink(application.Nom, "ByName", new {controller= "Packaging", action = "EditApplication", name = application.Nom})
控制器
public ActionResult EditApplication(string name)
URL 结果很好:.../Packaging/EditApplication/VisualStudio,但参数值保持为空。为什么?
谢谢
您不能有 TWO
个具有相同参数和相同定义的路由,第一个优先。相反,您需要在路由中具有如下所示的特定约束。
routes.MapRoute(
name: "ByName",
url: "sample/{action}/{name}",
defaults: new { controller = "Home", action = "Index", name = UrlParameter.Optional }
);
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
我有两条路线,默认一条
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
我又加了一条路由,有时参数会是一个字符串
routes.MapRoute(
name: "ByName",
url: "{controller}/{action}/{name}",
defaults: new { controller = "Home", action = "Index", name = UrlParameter.Optional }
);
当我在 RouteLink 中使用 "ByName" 路由时,URL 没问题,但我的控制器中的参数为空
在视图中:
@Html.RouteLink(application.Nom, "ByName", new {controller= "Packaging", action = "EditApplication", name = application.Nom})
控制器
public ActionResult EditApplication(string name)
URL 结果很好:.../Packaging/EditApplication/VisualStudio,但参数值保持为空。为什么?
谢谢
您不能有 TWO
个具有相同参数和相同定义的路由,第一个优先。相反,您需要在路由中具有如下所示的特定约束。
routes.MapRoute(
name: "ByName",
url: "sample/{action}/{name}",
defaults: new { controller = "Home", action = "Index", name = UrlParameter.Optional }
);
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);