如何在MVC中的ActionLink中传递查询字符串参数

Ash*_*i K 64 asp.net-mvc

我有以下行动链接:

<%= Html.ActionLink("Check this", "Edit", "test", 
                     new { id = id }, new { style = "display:block" })%>
Run Code Online (Sandbox Code Playgroud)

如何包含data=name查询字符串.有点像这样:

link?data=name
Run Code Online (Sandbox Code Playgroud)

Pan*_*nek 106

第四个参数Html.ActionLink可以有任意数量的属性:

<%= Html.ActionLink("Check this", "Edit", "test", 
                     new { id = id, data=name }, new { style = "display:block" })%>
Run Code Online (Sandbox Code Playgroud)

这些属性根据路由插入到URL中,但如果属性名称无法与任何路由匹配,则会将其添加为URL GET参数.

因此,如果您有标准路线{controller}/{action}/{id},您将获得以下网址:

test/Edit/[id]?data=[name] 
Run Code Online (Sandbox Code Playgroud)

从上面的代码.

  • 我只想补充说,如果省略最后一个参数(HTML属性),MVC 3会认为最后一个参数包含HTML属性.因此,如果您没有要设置的任何HTML属性,请不要忘记将空的新{}作为最后一个参数. (55认同)
  • 我们可以使用null,而不是为第四个参数添加空{}. (6认同)

小智 5

通过这种方式传递查询字符串

@Html.ActionLink("Delete Record", "Home", "Delete", new { id=Id},null)
Run Code Online (Sandbox Code Playgroud)

通过上面的代码,您将获得如下网址(假设 Id=1):/Home/Delete/1

如果您想向查询字符串添加更多参数,则:

@Html.ActionLink("Delete Record", "Home", "Delete", new { id=Id, Name=name},null)
Run Code Online (Sandbox Code Playgroud)

通过上面的代码,您将获得如下网址(假设 Id=1 且 Name=India):

/Home/Delete/1?Name=India
Run Code Online (Sandbox Code Playgroud)