使用Razor下拉列表而不是<select> with HTML </select>

时间:2013-02-12 08:01:08

标签: asp.net asp.net-mvc razor

我有一个像这样的选择列表

  <select id="select-product">
            <option>Select a Product</option>
  </select>

我在运行时使用Ajax填写此列表,现在我想将其转换为剃刀视图,我将在重定向到页面之前将数据包含在Viewbag中。

我该怎么做?

2 个答案:

答案 0 :(得分:1)

  

在重定向到页面之前,我会将数据包含在Viewbag中。

一种常见(且很好)的方法是在视图中使用@Html.DropDownList()@Html.DropDownListFor<>()。但是,您应该更喜欢强类型模型而不是ViewBag中结构较少的数据。

另见:

答案 1 :(得分:0)

$(document).ready(function () {
    $.get('/Home/GetProducts/' + $(this).val(), function (response) {
        var products = $.evalJSON(response);
        var ddlSelectedProduct = $("#SelectedProduct");

        // clear all previous options 
        $("#SelectedProduct > option").remove();

        // populate the products 
        for (i = 0; i < products.length; i++) {
            ddlSelectedProduct.append($("<option />").val(products[i].Value).text(products[i].Text));
        }
    });
});

@Html.DropDownListFor(
    x => x.SelectedProductId, 
    new SelectList(ViewBag.Products as SelectList, "Value", "Text"),
    "-- Select Product--"
)