簡體   English   中英

SelectedValues在MultiSelectList mvc中不起作用

[英]SelectedValues not working in MultiSelectList mvc

我有一個類似的課程

 public class Category
    {
        public int ID { get; set; }
        public string Name { get; set; }
        public ICollection<Category> CategorySelected { get; set; }
        public static List<Category> GetOptions()
        {
            var categories = new List<Category>();
            categories.Add(new Category() {  ID = 1, Name = "Bikes" });
            categories.Add(new Category() {  ID = 2, Name = "Cars" });
            categories.Add(new Category() {  ID = 3, Name = "Trucks" });

            return categories;
        }
    }

在控制器中,我填充MiltiselectItems並為其設置selectedValues

 public ActionResult Index()
    {
       Category cat=new Category();
       cat.CategorySelected.Add(new Category { ID =1, Name = "Bikes" });
       cat.CategorySelected.Add(new Category { ID =3, Name = "Trucks" });

        var list = Category.GetOptions();
        product.Categories = new MultiSelectList(list, "ID", "Name", CategorySelected);
    }

在View Code中我有

@Html.ListBox("Category", Model.Categories)

當我運行時,我的動作SelectedValues不起作用。 我做錯了什么?

MultiSelectList構造函數的最后一個參數采用所選Id的數組,而不是Category復雜類型的集合。

如果您將其更改為此,它將按預期工作:

product.Categories = new MultiSelectList(list, "ID", "Name", cat.CategorySelected.Select(c => c.ID).ToArray());

它只是將它投影到Id的數組中。

見下面的截圖:

屏幕抓取

Ps我還必須將它添加到Category的構造函數來初始化集合:

public Category()
{
   CategorySelected = new List<Category>();
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM