Asp.net mvc 为什么MVC路由中的字符串为空
我的RouteConfig中有以下内容:Asp.net mvc 为什么MVC路由中的字符串为空,asp.net-mvc,Asp.net Mvc,我的RouteConfig中有以下内容: public static void RegisterRoutes(RouteCollection routes) { routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); routes.MapMvcAttributeRoutes(); routes.MapRoute( name: "Default",
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapMvcAttributeRoutes();
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
}
在UsersController中执行以下操作:
public ActionResult Edit(string userId)
{
ManageUserViewModel model = new ManageUserViewModel();
model.UserId = userId;
return View(model);
}
url是:address/Users/Edit/1c557388-3570-41ad-b7b3-dc53106a908a
这会加载视图ok,但每次字符串userId总是空的,我似乎无法找出原因,有人能帮忙吗?而不是字符串userId,它应该是字符串id,如图所示:
public ActionResult Edit(string id)
{.....}
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{userId}",
defaults: new { controller = "Home", action = "Index", userId = UrlParameter.Optional }
);
您的路由参数是id而不是userId
如果要将userId作为路由参数,请更改路由,如图所示:
public ActionResult Edit(string id)
{.....}
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{userId}",
defaults: new { controller = "Home", action = "Index", userId = UrlParameter.Optional }
);
编辑:-
一个很好的布线教程是,可以作为
public ActionResult Edit(string id)
您使用的是路由id而不是用户id。如果需要userId,请将其更改为userId
有关更多详细信息,请谢谢,我不知道这是字面意思