Asp.net mvc 3 在ASP.NET MVC 3中将参数集合传递给操作

Asp.net mvc 3 在ASP.NET MVC 3中将参数集合传递给操作,asp.net-mvc-3,action,Asp.net Mvc 3,Action,我有一个ASP.NETMVC3应用程序。在这个应用程序中,我需要根据选定的值列表进行查询。我的问题是,在asp.net mvc中有没有一种方法可以将列表作为参数传递给视图?例如,理想情况下,我希望使用以下内容: [AcceptVerbs(HttpVerbs.Get)] public ActionResult CustomerOrderStatus(List<int> orderIDs) { // Do stuff } [AcceptVerbs(HttpVerbs.Get)] 公

我有一个ASP.NETMVC3应用程序。在这个应用程序中,我需要根据选定的值列表进行查询。我的问题是,在asp.net mvc中有没有一种方法可以将列表作为参数传递给视图?例如,理想情况下,我希望使用以下内容:

[AcceptVerbs(HttpVerbs.Get)]
public ActionResult CustomerOrderStatus(List<int> orderIDs)
{
  // Do stuff
}
[AcceptVerbs(HttpVerbs.Get)]
公共操作结果CustomerOrderStatus(列出医嘱ID)
{
//做事
}
我不确定如何在控制器中路由映射。这种方法可行吗?

是一种可行的解决方案

<a href="<%= Url.Action("CustomerOrderStatus")%>?ids=2&ids=1&ids=3">Test link</a>

好吧,您可以使用一个小Url.helper,内容如下:

public static class Helpers
{
    public static string ListToAction (this UrlHelper helper, string listName, int[] values)
    {
        string finalOutput =  values.Aggregate("?", (current, value) => 
                                current + string.Format("{0}={1}&", listName, value));
        return finalOutput.Substring(0, finalOutput.LastIndexOf("&"));
    }
}
用法:

<a href="@Url.Action("CustomerOrderStatus")@Url.ListToAction("orderIDs", new int[]{1,2,6,9})">Test link</a>


只是一个疯狂的想法:)

便利提示:因为它是MVC 3,所以可以用[HttpGet]替换[AcceptVerbs(HttpVerbs.Get)]。如果您愿意,也就是说。您是否打算通过ajax调用或表单提交或其他方式访问此方法?