0

我正在尝试从查询字符串中获取可选的字符串列表,例如,

http://host/test/arg?mylist=cat&mylist=dog

据我所知,它应该像在我的控制器中声明一个集合一样简单,例如,

public string GetTest(string uriArg, ICollection<string> mylist)

当我尝试这个时,mylist它是空的。

如果我将控制器切换到

public string GetTest(string uriArg, string mylist)

然后 mylist 以"(Collection)".

http://haacked.com/archive/2008/10/23/model-binding-to-a-list.aspx等文章说它应该像在这里使用 ICollection 一样简单。为什么这不起作用?

4

1 回答 1

0

我无法重现您描述的问题。这应该有效。

  1. 使用默认 Internet 模板创建新的 ASP.NET MVC 3 应用程序
  2. 修改 HomeController 使其看起来像这样:

    public class HomeController : Controller
    {
        public ActionResult Index(ICollection<string> myList)
        {
            return Content(string.Join(",", myList));
        }
    }
    
  3. 运行应用程序并导航到/home/index?mylist=cat&mylist=dog

  4. 正如预期cat,dog的那样显示在屏幕上。
于 2013-03-30T22:48:46.640 回答