我正在使用actionlink将参数“code”传递给项目的控制器,并在新视图上获取该项目的详细信息(实际上,它是调用3个部分视图的控制器)
我还需要传递参数“description”,但这只是一个需要在新视图中显示的值,并且在控制器中没有用(我使用“代码”来过滤数据库记录)。
@foreach (var item in Model.MyModel)
{
<tr>
<td>
@Html.ActionLink(item.code, "Index", "ControlerName", new { pos = item.code.ToString(), desc = item.desc.ToString() }, null)
</td>
}
这个actionlink给我url / ControlerName?pos = code&amp; desc = desc
有没有办法发送“desc”参数,所以它不会在网址中看到,只会在新视图中显示?
答案 0 :(得分:8)
您必须像传递参数一样传递参数,以便其他控制器和视图知道正在保留的数据。
另一种方法是将您的描述存储在id
可以识别的“查找表”中,这样您只需要传递id
,它就是Controller's
或ViewModel's
负责查看。
@Html.ActionLink(item.code, "Index", "ControllerName", new { id=1 }, null)
控制器:
public ActionResult Index(int id) {
// Go to DB and get the description by id.
}
答案 1 :(得分:2)
不,Html.ActionLink仅用于生成网址并将其放在锚标记内。当你的指数行动被击中时,你应该重新填充你的指数值。
答案 2 :(得分:-2)
使用表单标记并将您想要的所有参数传递给actionresult,并返回任何其他actionresult(将带有您想要的url)。