如何使用Html.ListBoxFor与MVC4

本文关键字:MVC4 ListBoxFor Html 何使用 | 更新日期: 2023-09-27 18:03:10

我正在尝试填充一个列表框。我的模型只是一个List。我找不到一个简单的参数解释,我需要使用@Html.ListBoxFor()。

这是我的一部分代码:

public ActionResult Index()
{
     List<string> names = GetAllNames();
    return View(names);
}
...

在视图中:

@model List<string>
...
@Html.ListBoxFor(?)

谢谢。

如何使用Html.ListBoxFor与MVC4

你可以在你的控制器动作中填充你的模型列表

someAction
{
    CountryModel objcountrymodel = new CountryModel();  
    objcountrymodel.CountryList = GetAllCountryList();
    return View(objcountrymodel);
}
public SelectList GetAllCountryList()
{
    List<Country> objcountry = new List<Country>();
    objcountry.Add(new Country { Id = 1, CountryName = "India" });
    objcountry.Add(new Country { Id = 2, CountryName = "USA" });
    objcountry.Add(new Country { Id = 3, CountryName = "Pakistan" });
    objcountry.Add(new Country { Id = 4, CountryName = "Nepal" });
    SelectList objselectlist = new SelectList(objcountry, "Id", "CountryName");
    return objselectlist;
}

,在你的。cshtml中,你可以这样使用:

@Html.ListBoxFor(m => m.SelectedCountry, new SelectList(Model.CountryList, "Value", "Text", Model.CountryList.SelectedValue), new { @Id = "lstcountry", @style = "width:200px;height:60px;" })

用于处理视图中的列表,您需要将其强制转换为SelectList类型。在我们的示例中,假定Country是用于该目的的模型。

首先你需要创建一个viewModel;这里我们假设它被命名为ListBoxViewModel。

public class ListBoxtViewModel
{
   public string SelectedItem{get;set;}
   public List<SelectListItem> selectItemList{get;set;)
}

第二步,在视图中添加using代码。

@Html.ListBoxFor(m=>m.SelectedItem, List<SelectListItem> selectItemList)