是否可以在不更改视图文件中的代码的情况下将参数附加到每个@ 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>
会话不是一个好选择,因为用户可以在浏览器中打开多个窗口。
答案 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。