繁体   English   中英

在MVC 2中的Html.ActionLink中传递字符串

[英]Passing a string in Html.ActionLink in MVC 2

我已经完成了MVC音乐商店应用程序,现在我正在为练习做自己的修改,也为我准备在工作中完成类似的任务做好了准备。

我所做的是创建一个显示当前用户列表的视图。 我这样做是因为我希望能够在用户忘记密码的情况下更改他们的密码。 以下是我认为的一个片段:

<% foreach (MembershipUser user in Model) { %>

<tr>
    <td><%: Html.ActionLink(user.UserName, "changeUserPassword", 
        "StoreManager", new { username = user.UserName }) %></td>
    <td><%: user.LastActivityDate %></td>
    <td><%: user.IsLockedOut %></td>
</tr>

<% }%>

我想知道的是,是否可以像上面所做的那样通过操作链接传递用户名。 我在global.asax.cs文件中注册了以下路由,但我不确定我是否已正确完成:

routes.MapRoute(
    "AdminPassword", //Route name
    "{controller}/{action}/{username}", //URL with parameters
    new { 
        controller = "StoreManager", 
        action = "changeUserPassword", 
        username = UrlParameter.Optional
    });

这是我的GET操作:

public ActionResult changeUserPassword(string username)
{
    ViewData["username"] = username;

    return View();
}

我已通过代码调试,发现ViewData [“username”] =用户名没有填充,所以看起来我没有正确注册路由,或者我根本无法使用像我这样的actionlink传递用户名。

如果有人能指出正确的方向,我将不胜感激。

您似乎使用了错误的方法签名,我认为您使用的是这一方法

你想做

Html.ActionLink(user.UserName, "changeUserPassword", 
    new { controller = "StoreManager", username = user.UserName });

或者你可以做

Html.RouteLink(user.UserName, "AdminPassword", 
    new { username = user.UserName });

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM