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 ) ;