如何根据当前路线值创建动作链接?

时间:2011-11-22 18:01:21

标签: asp.net-mvc-3 razor

我有一个页面,其URL为http://localhost:5947/Employer/Edit?LoginID=41,并且从该页面我有@Html.ActionLink("Change password", "change_pass", "Employer");创建的链接,该链接重定向到更改密码页面。

如何将LoginID从编辑页面传递到更改密码页面?

2 个答案:

答案 0 :(得分:2)

@Html.ActionLink(
    "Change password", 
    "change_pass", 
    "Employer", 
    new { LoginID = Request["LoginId"] }, 
    null
)

这就是说,将登录ID作为查询字符串参数传递引起了对应用程序安全性的一些严重担忧。

答案 1 :(得分:1)

您需要使用允许您设置路由值的ActionLink重载。例如,你可以这样做:

@Html.ActionLink(
    "Change password", 
    "change_pass", 
    "Employer", 
    new { LoginID = Request["LoginID"] }, 
    null)

但是,您可以通过不直接访问Request["LoginID"]来改进此问题。为此,Edit视图的模型必须具有当前LoginID的属性,并使用该属性。