1

在我看来我有

<dt>User Name</dt>
<dd>@Model.UserName</dd>

这显示了正确的用户名,我也在Html.ActionLink同一个视图中

@Html.ActionLink("Change Password", "ChangeNonAdminPassword", "Account", new { area = ""},new{userName=Model.UserName})

尽管此操作链接将我发送到正确的控制器方法,但我得到的 userName 值始终是null.

这是控制器中的get方法

[HttpGet]
public ActionResult ChangeNonAdminPassword(string userName)
{
    var changePassword = new ChangePassword {UserName = userName};
    return View(changePassword);
}

问题是为什么用户名在 get 方法中总是为空,我应该怎么做才能发送正确的值?

4

1 回答 1

2

您正在传递userName到 HTML 属性重载。您需要将其添加到路由值重载中,与area. 改用这个:

@Html.ActionLink("Change Password", "ChangeNonAdminPassword", "Account", new { area = "", userName = Model.UserName}, new {})
于 2013-08-29T07:33:19.053 回答