2012-02-27 91 views
2

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

[AcceptVerbs(HttpVerbs.Get)] 
public ActionResult CustomerOrderStatus(List<int> orderIDs) 
{ 
    // Do stuff 
} 

我不知道如何在我的控制器中路由映射。这种方法可行吗?

+2

手持尖端:由于它是MVC 3,可以用[HTTPGET]取代的[AcceptVerbs(HttpVerbs.Get)] 。如果你想,那就是。 – MrBoJangles 2012-02-27 15:26:56

+0

您是否打算通过ajax调用或表单提交或其他方式访问此方法? – MrBoJangles 2012-02-27 15:28:48

回答

0

Here是一个可能的解决方案

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

好了,你可以沿着线用少许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> 

只是胡乱想:)