我有一个非常简单的正常路线,我似乎无法让它发挥作用。我有点无能为力。
我的路由是:
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
我的控制器名为AccountController,它有这个方法:
public virtual ApplicationUser EditUser(String userId)
我发布此网址并获得一个null的用户ID
/Account/EditUser/Patrick
我错过了什么?
答案 0 :(得分:4)
您的路线有一个名为“id”的参数,而您的方法有一个名为“userId”的参数。这些需要匹配。
所以要么创建一个路线,比如:
routes.MapRoute(
name: "EditUser",
url: "Account/EditUser/{userId}",
defaults: new { controller = "Account", action = "EditUser"});
或者将您的方法更改为:
public virtual ApplicationUser EditUser(string id);
请注意,如果您选择第一个选项,则需要将之前的调用现有默认选项,因为您输入的任何网址都会与第一个路由匹配匹配它。