我正在尝试填充ListBox。我的模型只是一个列表。我无法找到我需要与@ Html.ListBoxFor()一起使用的参数的简单解释。
以下是我的代码的一部分:
public ActionResult Index()
{
List<string> names = GetAllNames();
return View(names);
}
...
在视图中:
@model List<string>
...
@Html.ListBoxFor(?)
感谢。
答案 0 :(得分:4)
您可以在控制器操作中填充模型列表:
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 被假定为此目的的模型。 (具有选择列表的键和值)
答案 1 :(得分:1)
首先你需要创建一个viewModel;这里我们假设它名为ListBoxViewModel。
public class ListBoxtViewModel
{
public string SelectedItem{get;set;}
public List<SelectListItem> selectItemList{get;set;)
}
其次,使用以下代码添加到您的视图中。
@Html.ListBoxFor(m=>m.SelectedItem, List<SelectListItem> selectItemList)