mvc无法正常工作的简单路线

时间:2014-05-14 20:57:34

标签: c# asp.net-mvc asp.net-mvc-5

我有一个非常简单的正常路线,我似乎无法让它发挥作用。我有点无能为力。

我的路由是:

 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

我错过了什么?

1 个答案:

答案 0 :(得分:4)

您的路线有一个名为“id”的参数,而您的方法有一个名为“userId”的参数。这些需要匹配。

所以要么创建一个路线,比如:

routes.MapRoute(
        name: "EditUser",
        url: "Account/EditUser/{userId}",
        defaults: new { controller = "Account", action = "EditUser"});

或者将您的方法更改为:

public virtual ApplicationUser EditUser(string id);

请注意,如果您选择第一个选项,则需要将之前的调用现有默认选项,因为您输入的任何网址都会与第一个路由匹配匹配它。