Question

In my view I have

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

This shows proper user name, also I have an Html.ActionLink in the same view

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

Though this actionlink sends me to right controller method but the userName value i'm getting is always null.

Here is the get method in controller

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

The question is why is the userName always null in get method, and what should I do to send the proper value?

Was it helpful?

Solution

You're passing userName into the HTML Attributes overload. You need to add it to the route values overload, the same as area. Use this instead:

@Html.ActionLink("Change Password", "ChangeNonAdminPassword", "Account", new { area = "", userName = Model.UserName}, new {})
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top