在我的控制器中,我有一个项目列表。我存储在ViewData["Brand"]
中。
在我看来,这些数据对下拉列表不知情。
列表即将出现。
现在我想在视图中选择下拉列表时将所选项目值传递给模型。
如何访问ViewData["Brand"]
中的项目。
这是我的代码。
@Html.DropDownList("BrandName", ViewData["BrandName"] as SelectList, "--Select--", new { onchange = "this.form.submit()" });
答案 0 :(得分:0)
首先,您必须发回一个品牌列表,即_brands将是您的数据库或其他地方填充的品牌列表。
var brandId = "1";
var brands = _brands.Select(b => new SelectListItem
{
Value = b.Id.ToString(),
Text = b.Name,
Selected = brandId.Equals(b.Id.ToString())
});
ViewData["BrandId"] = = "1";
ViewData["Brands"] = brands;
上述重要部分是:
Selected = brandId.Equals(b.Id.ToString());
这将预先选择列表。
然后是以下内容:
@Html.DropDownList("BrandId", ViewData["Brands"] as SelectList, "--Select--", new { onchange = "this.form.submit()" });
答案 1 :(得分:0)
将项目绑定到列表并存储在ViewData [BrandName]
中控制器代码:
IList<BrandInfo> brand = new List<BrandInfo>();
int CategoryId = Convert.ToInt32(Request.QueryString["CategoryId"]);
productInstance.CategoryId = CategoryId;
brand = get****(CategoryId);
IList<SelectListItem> BrandNameList = new List<SelectListItem>();
foreach (var item in brand)
{
SelectListItem sli = new SelectListItem();
sli.Text = item._name;
sli.Value = Convert.ToString(item._brandId);
if (sli.Value == BrandId.ToString())
{
sli.Selected = true;
}
BrandNameList.Add(sli);
}
ViewData["BrandName"] = BrandNameList;
型号:
public string BrandName { get; set; }
查看代码:
@Html.DropDownList("BrandName", ViewData["BrandName"] as SelectList, "-- Select By Brands --")