请任何机构告诉新手如何在多个值的下拉列表中显示特定值。例如我在我的下拉列表中有印度,澳大利亚,中国,英国,我已将该国更新为中国,所以当下次有人查看详细信息时,他会在下拉列表中看到中国。视图中的代码如下:
@Html.DropDownList("list",ViewData["list"] as SelectList)
@Html.ValidationMessageFor(model => model.Country)
和.cs页面上的代码如下:
var list = new SelectList(new[]
{
new {ID="0",Name="Select"},
new{ID="1",Name="Australia"},
new{ID="3",Name="United States"},
new {ID="4",Name="United Kingdom"},
new{ID="5",Name="Europe"},
new{ID="6",Name="Canada"},
new {ID="7",Name="India"},
new {ID="8",Name="China"},
new{ID="9",Name="Japan"},
new{ID="10",Name="New Zealand"},
},
"ID", "Name", 1);
ViewData["list"] = list;
答案 0 :(得分:1)
这是一个不使用ViewData的解决方案,但使用视图模型在操作方法和视图之间传输数据。假设您正在尝试编辑客户记录。所以你将有一个像这样的视图模型
public class CustomerEditVM
{
public int CustomerID { set;get;}
public string Name { set;get;}
public List<SelectListItem> Countries { set;get;}
public int SelectedCountry { set;get;}
}
并在你的行动方法
public ActionResult View(int id)
{
var customer=repositary.GetCustomer(id);
var customerEditVM=new CustomerEditVM { CustomerID=id,Name=customer.Name};
customerEditVM.Countries=GetCountries();
//Setting the selected item value here
customerEditVM.SelectedCountry=customer.CountryID
return View(customerEditVM);
}
public List<SelectListItem> GetCountries()
{
return new List<SelectListItem> {
new SelectListItem{ Value="1",Text="India"},
new SelectListItem{ Value="2",Text="China"},
new SelectListItem{ Value="3",Text="US"},
}
}
您的视图应该强烈输入CustomerEditVM,我们将使用Html.DropDownListFor帮助方法。
@model YourNamespaceHere.CustomerEditVM
@using(Html.BeginForm())
{
Country :
@Html.DropDownListFor(s=>s.SelectedCountry,Model.Countries,"Select")
<input type="submit" value="Save" />
@Html.HiddenFor(s=>s.CustomerID)
}