代码之家  ›  专栏  ›  技术社区  ›  Petros

如何在视图中声明下拉框以在ASP.NET MVC中为模型设置值?

  •  10
  • Petros  · 技术社区  · 16 年前

    我想在ASP.NET MVC应用程序的视图中声明一个下拉框,允许用户选择一个查找值。我知道如何声明纯文本框,但是是否有一个正式的帮助器来声明下拉框(日期时间选择器和其余的)?.

    我也不知道应该将什么结构传递给视图,以便将值提供给下拉框。我想我需要一个身份证和一个描述。

    最后,如何将下拉框中选定的ID传递回控制器中的操作?

    2 回复  |  直到 12 年前
        1
  •  4
  •   Matt Greer    14 年前

    如果您有一个产品类型表,其中包含要映射到下拉列表的描述和值(ID),请在控制器中的操作中执行以下操作。

    //Lets assume you retrieve your product types somehow here
    ViewData["ProductTypes"] =  new List<ProductType>();
    

    然后在视图中键入以下内容

    <%= Html.DropDownList("productType",
        new SelectList((IEnumerable)ViewData["ProductTypes"],
        "TypeID", "Description"))%>
    

    typeid和description引用ProductType类型的对象的属性

    此外,如果安装了较旧版本的MVC,则可能找不到html.dropdownlist,请确保在尝试之前安装了beta+版本。

        2
  •  1
  •   Mike Scott    12 年前

    你可以看看Scott Guthrie写的关于 Handling Form Edit Post Scenarios . 他在他的示例中使用了下拉列表。

    您也可以向下拉列表提供一个复杂对象的列表(ScottGuthrie的示例没有显示这一点,但它暗指它)。

    你可以这样做…

    <%= Html.DropDownList("Select One", "CategoryId", ViewData.Model.Categories, "Id", "Name", ViewData.Model.SelectedCategoryId)) %>
    

    “id”和“name”指的是viewdata.model.categories对象列表中的属性。

    如果selectedCategoryID有一个值,那么它将默认下拉列表。