在列出我的控制器时,
public ActionResult GetByList(string name, string contact)
{
var NameCollection = Service.GetByName(name);
var ContactCollection = Service.GetByContact(contact);
return View(new ListViewModel(NameCollection ,ContactCollection));
}
在我调用ASPX页面中,
<a href="<%:Url.Action("GetByList","Listing" , new {name= "John"} , new {contact="calgary, vancouver"})%>"><span>People</span></a>
我在ASPX代码中有个问题...我可以调出约翰这个名字的记录。但是当我给出contact="calgary, vancouver"
的时候,网页就出错了。
如何在Url.Action
中调用两个参数。我尝试了下面的方法,但这似乎也是错误的。
<a href="<%:Url.Action("GetByList","Listing" , new {name= "John" , contact= " calgary, vancouver" })%>"><span>People</span></a>
发布于 2011-06-08 20:32:41
以下是正确的重载(在您的示例中,您缺少routeValues
匿名对象的结束}
,因此您的代码将抛出异常):
<a href="<%: Url.Action("GetByList", "Listing", new { name = "John", contact = "calgary, vancouver" }) %>">
<span>People</span>
</a>
假设您使用的是默认路由,这应该会生成以下标记:
<a href="/Listing/GetByList?name=John&contact=calgary%2C%20vancouver">
<span>People</span>
</a>
它将成功调用传递两个参数的GetByList
控制器操作:
public ActionResult GetByList(string name, string contact)
{
...
}
发布于 2018-06-23 01:00:16
这适用于MVC 5:
<a href="@Url.Action("ActionName", "ControllerName", new { paramName1 = item.paramValue1, paramName2 = item.paramValue2 })" >
Link text
</a>
发布于 2013-03-28 07:12:16
您可以返回一个名为HttpValueCollection的私有集合,即使文档上说它是一个使用ParseQueryString实用程序的NameValueCollection。然后手动添加密钥,HttpValueCollection会为您进行编码。然后手动添加QueryString:
var qs = HttpUtility.ParseQueryString("");
qs.Add("name", "John")
qs.Add("contact", "calgary");
qs.Add("contact", "vancouver")
<a href="<%: Url.Action("GetByList", "Listing")%>?<%:qs%>">
<span>People</span>
</a>
https://stackoverflow.com/questions/6278694
复制相似问题