在SelectList上设置所选值不起作用

时间:2019-04-27 07:55:48

标签: c# asp.net-mvc asp.net-mvc-4 razor

显然,这是一个已经在SO上回答的简单问题,但是我无法使其在我的代码中起作用。

我希望能够预先选择视图上SelectList上显示的第一个元素。

我的控制器:

public ActionResult Create(){
    CostumerRegister rModel = new CostumerRegister();
    rModel.AllStores = getStoresForUser(User.Identity.GetUserId());
    //to auto select the first element of the select list
    rModel.AllStores.First().Selected = true;
    return View(rModel);
}

public SelectList getStoresForUser(string userId){
//...
}

在我看来:

@Html.ListBoxFor(m => m.SelectedStores, Model.AllStores, new { @class = "form-control" })

我希望在视图上选择第一个元素,但它似乎未被选中。

1 个答案:

答案 0 :(得分:1)

我认为这很有用:

public ActionResult Index()
        {
            // Preselect items with id 1 and 3
            var selectedItemIds = new[] { 1, 3 };

            var model = new MyViewModel
            {
                Items = new MultiSelectList(
                    new[] 
                    {
                        // TODO: Fetch from your repository
                        new { Id = 1, Name = "item 1" },
                        new { Id = 2, Name = "item 2" },
                        new { Id = 3, Name = "item 3" },
                    }, 
                    "Id", 
                    "Name", 
                    selectedItemIds
                )
            };

            return View(model);
        }