سؤال

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?

هل كانت مفيدة؟

المحلول

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 {})
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top