在我看来,我有
<dt>User Name</dt>
<dd>@Model.UserName</dd>
这显示了正确的用户名,我在同一视图中也有Html.ActionLink
@Html.ActionLink("Change Password", "ChangeNonAdminPassword", "Account", new { area = ""},new{userName=Model.UserName})
虽然此actionlink将我发送到正确的控制器方法,但我得到的userName值始终为null
。
这是控制器中的get方法
[HttpGet]
public ActionResult ChangeNonAdminPassword(string userName)
{
var changePassword = new ChangePassword {UserName = userName};
return View(changePassword);
}
问题是为什么 userName 在get方法中始终为null,我该怎么做才能发送正确的值?
答案 0 :(得分:2)
您将userName
传递给HTML属性重载。您需要将其添加到路由值重载,与area
相同。请改用:
@Html.ActionLink("Change Password", "ChangeNonAdminPassword", "Account", new { area = "", userName = Model.UserName}, new {})