【问题标题】:Passing a collection of parameters to an Action in ASP.NET MVC 3将参数集合传递给 ASP.NET MVC 3 中的操作
【发布时间】:2012-02-27 15:23:03
【问题描述】:

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

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

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

【问题讨论】:

  • 小贴士:因为它是 MVC 3,你可以将 [AcceptVerbs(HttpVerbs.Get)] 替换为 [HttpGet]。如果你愿意,那就是。
  • 您打算通过 ajax 调用或表单提交或其他方式访问此方法吗?

标签: asp.net-mvc-3 action


【解决方案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>

只是一个疯狂的想法:)

【讨论】:

    【解决方案2】:

    Here 是一个可能的解决方案

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-02-14
      • 2011-07-25
      • 1970-01-01
      • 2014-11-22
      • 1970-01-01
      • 2012-02-25
      相关资源
      最近更新 更多