我在RouteConfig中有以下内容:
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中的以下ActionResult:
public ActionResult Edit(string userId)
{
ManageUserViewModel model = new ManageUserViewModel();
model.UserId = userId;
return View(model);
}
网址是:地址/用户/编辑/ 1c557388-3570-41ad-b7b3-dc53106a908a
这会加载视图,但每次字符串userId始终为null并且我似乎无法解决原因,是否有人可以提供帮助?
答案 0 :(得分:5)
答案 1 :(得分:2)
而不是(string userId)
它应该是(string id)
,如下所示:
public ActionResult Edit(string id)
{.....}
您的路由参数 id 而非 userId 。
如果您希望userId
作为路由参数,请按如下所示更改路由:
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{userId}",
defaults: new { controller = "Home", action = "Index", userId = UrlParameter.Optional }
);
修改: -