从视图中的ViewData [“Brand”]访问数据

时间:2013-11-25 08:09:33

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

在我的控制器中,我有一个项目列表。我存储在ViewData["Brand"]中。

在我看来,这些数据对下拉列表不知情。

列表即将出现。

现在我想在视图中选择下拉列表时将所选项目值传递给模型。

如何访问ViewData["Brand"]中的项目。

这是我的代码。

 @Html.DropDownList("BrandName", ViewData["BrandName"] as SelectList, "--Select--", new { onchange = "this.form.submit()" });

2 个答案:

答案 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 --")