Asp.net mvc 在@html.actionlink()中传递多个参数

Asp.net mvc 在@html.actionlink()中传递多个参数,asp.net-mvc,asp.net-mvc-4,razor,actionlink,Asp.net Mvc,Asp.net Mvc 4,Razor,Actionlink,我使用actionlink将参数“code”传递给一个项目的控制器,并在新视图中获取该项目的详细信息(实际上,是控制器调用了3个部分视图) 我还需要传递参数“description”,但这只是一个需要在新视图中显示的值,在控制器中没有用处(我使用“code”来过滤数据库记录) @foreach(Model.MyModel中的变量项) { @ActionLink(item.code,“Index”,“ControlerName”,新的{pos=item.code.ToString(),desc=i

我使用actionlink将参数“code”传递给一个项目的控制器,并在新视图中获取该项目的详细信息(实际上,是控制器调用了3个部分视图)

我还需要传递参数“description”,但这只是一个需要在新视图中显示的值,在控制器中没有用处(我使用“code”来过滤数据库记录)

@foreach(Model.MyModel中的变量项)
{
@ActionLink(item.code,“Index”,“ControlerName”,新的{pos=item.code.ToString(),desc=item.desc.ToString()},null)
}

此actionlink为我提供url/ControlerName?pos=code&desc=desc


有没有办法发送“desc”参数,这样它就不会在url中显示,而只在新视图中显示?

使用表单标记,将所有需要的参数传递给actionresult,并返回任何其他需要的actionresult(它将携带所需的url)


使用表单标签,将所有需要的参数传递给actionresult,并返回任何其他需要的actionresult(它将携带所需的url)


否,Html.ActionLink仅用于生成url并将其放在锚定标记中。当索引操作中的desc值被命中时,您应该重新填充该值

否,Html.ActionLink仅用于生成url并将其放在锚定标记中。当索引操作中的desc值被命中时,您应该重新填充该值

您必须像传递参数一样传递参数,以便其他控制器和视图知道正在持久化的数据

另一种方法是将您的描述存储在一个“查找表”中,您可以通过
id
识别该表,因此您只需传递
id
,而
控制器的
视图模型的
将负责查找该表

@Html.ActionLink(item.code, "Index", "ControllerName", new { id=1 }, null)
控制器:

public ActionResult Index(int id) {
    // Go to DB and get the description by id.
}

您必须像传递参数一样传递参数,以便其他控制器和视图知道正在持久化的数据

另一种方法是将您的描述存储在一个“查找表”中,您可以通过
id
识别该表,因此您只需传递
id
,而
控制器的
视图模型的
将负责查找该表

@Html.ActionLink(item.code, "Index", "ControllerName", new { id=1 }, null)
控制器:

public ActionResult Index(int id) {
    // Go to DB and get the description by id.
}

我很想知道你还有什么方法可以传递参数而不必将其包含在url中!既然你投了反对票,你能回答一下或者发表评论来澄清原因吗?我很想听听你还有什么其他方法可以传递参数而不将其包含在url中!既然你投了反对票,请你回答或者发表评论来澄清原因好吗?我的回答被标记为答案,但你的回答更好!我的回答被标记为答案,但你的回答更好!