将参数附加到ActionLinks

时间:2011-10-20 16:47:04

标签: asp.net-mvc asp.net-mvc-3

是否可以在不更改视图文件中的代码的情况下将参数附加到每个@ Html.ActionLink?

类似的东西:

public ActionResult Edit(int id)
{
    RouteData.Values.Add("param_name", "param_value"); // This does not work
    return View();
}

我希望所有链接都包含参数:

<a href="/controller/action/1?param_name=param_value">test</a>

会话不是一个好选择,因为用户可以在浏览器中打开多个窗口。

2 个答案:

答案 0 :(得分:0)

为什么要在控制器中执行此操作?使用@Html.ActionLink就像:

一样简单
@Html.ActionLink("Edit", "Edit", "Controller", 
                 new { id = 1, param_name = "param_value" })

这应该产生:

<a href="/Controller/Edit/1?param_name=param_value">Edit</a>

如果由于某种原因这不适用于您的项目,您应该可以通过路由执行此操作。

答案 1 :(得分:0)

可以在路线级别上查看ASP.NET MVC: The right way to propagate query parameter through all ActionLinks。如果你想在Action / View级别上进行,那么你仍然可以创建一个路由类,它将根据控制器设置的一些数据生成URL。