如何保持DropDownList变量的原始值?

时间:2012-07-24 02:59:24

标签: c# asp.net-mvc-3 entity-framework html-select

我在控制器中使用Viewbag.typeofchange将列表传递给视图。在创建网页/视图中,如果选择了dropdownlist项,则会将其正确保存到实体模型/数据库中。

但是,在编辑网页/视图中,下拉列表会显示原始值,但是当保存页面时,如果未选择下拉列表中的新项,则该值将丢失。

在编辑视图中,如果选择了dropdownlist,则新值将存储到数据库中。

如何保持dropdownlist变量typeofchange的原始值,以便在用户未选择项目时不会丢失?

控制器中的代码:

    List<SelectListItem> items = new List<SelectListItem>();
    items.Add(new SelectListItem { Text = "Red", Value = "Red" });
    items.Add(new SelectListItem { Text = "Green", Value = "Green" });
    items.Add(new SelectListItem { Text = "Blue", Value = "Blue" });
    items.Add(new SelectListItem { Text = "Other/Explain", Value = "Other" });
    ViewBag.typeofchange = items;

编辑视图中的代码:

    <div class="editor-field">
        @Html.DropDownList("typeofchange", Model.typeofchange)
    </div>

实体CodeFirst模型中的代码:

    [DisplayName("Type of Change")]
    public string typeofchange { get; set; }

我真的很感激反馈。

1 个答案:

答案 0 :(得分:0)

你有两个变量,typeofchange是在ViewBag中传递的SelectList和typeofchange,它是模型的一部分。您需要做的就是将模型typeofchange设置为所选值,并为您设置相关SelectListItem的Selected属性。