C# 将列表集合传递给控制器

C# 将列表集合传递给控制器,c#,asp.net-mvc,C#,Asp.net Mvc,我有 视图: <div class="partialContents comiclist" data-url="@Url.Action("LoadAlphabetBook2", "book", new { delimiters = "#;;;0;;;1;;;2;;;3;;;4;;;5;;;6;;;7;;;8;;;9", keywords = "0 - 9", startLetter = "0", categoryIds = new List<int> { Model.cat

我有

视图:

  <div class="partialContents comiclist" data-url="@Url.Action("LoadAlphabetBook2", "book", new { delimiters = "#;;;0;;;1;;;2;;;3;;;4;;;5;;;6;;;7;;;8;;;9", keywords = "0 - 9", startLetter = "0", categoryIds = new List<int> { Model.categoryId } })">
    </div>


 <div class="partialContents comiclist" data-url="@Url.Action("LoadAlphabetBook2", "book", new { delimiters = "e;;;f;;;g;;;h", keywords = "E - H", startLetter = "E", categoryIds = new List<int> { Model.categoryId } })">
 </div>
控制器

public ActionResult LoadAlphabetBook2(string delimiters, string keywords, string startLetter, List<int> categoryIds = null)
    {
       ......


    }
public ActionResult LoadAlphabetBook2(字符串分隔符、字符串关键字、字符串分隔符、列表类别ID=null)
{
......
}
控制器正确获取除CategoryId之外的所有参数。事实上,它试图加载:

/簿记/加载字母BetBook2?分隔符=%23%3B%3B%3B%3B%3B%3B%3B%3B%3B%3B%3B%3B%3B5%3B%3B%3B%3B%3B%3B%3B%3B%3B%3B%3B%9和关键字=0%20-%209和STARTETER=0和categoryIds=System.Int32%5B%5D


我怎样才能让它正常工作,通过这样的列表而不是新的int[]

您必须使用

Model.categoryId.ToString( format ) ;

格式是可选的

您也可以将所有ID作为字符串传递(可能用分隔符分隔),然后选择在控制器中处理它。它可以工作,但我仍然不知道在传递列表集合时为什么不工作。也不太确定。尝试将其更改为此-新列表(){Model.categoryId}
Model.categoryId.ToString( format ) ;