如何在MVC视图的编辑模式下在组合框中显示保存的项目?

时间:2014-03-25 14:21:35

标签: asp.net-mvc asp.net-mvc-3 asp.net-mvc-4

我在create View中有一个简单的组合框。保存数据后,当我进入编辑模式时,我想在组合框中显示已保存的项目。下面是创建视图中组合框的代码:

<select>
  <option value="" disabled="disabled" selected="selected">Select Vendor</option>
  <option value="1">Jindal Ltd</option>
  <option value="2">ABC Enterprise</option>
  <option value="3">Sun Manufacture</option>
</select>

创建表单的屏幕截图。

enter image description here

现在,我应该在控制器和视图中编写什么代码,这样我才能在组合框中显示保存的项目?

以下是编辑模式的屏幕截图,我想在组合框中显示已保存的项目。

enter image description here

1 个答案:

答案 0 :(得分:1)

您可以使用jquery将所选值设置为如下所示。另外,由于@Guillelon说我们无法完全看到视图代码,因此我们很容易看到您的视图的样子并提出答案。

以下示例是普通的html。

@{
    ViewBag.Title = "Home Page";
}
<script type="text/javascript">
    $(document).ready(function () {
        $("#test").val("2");
    });
</script>
</div>
<select id="test">
    <option value="1">Test1</option>
    <option value="2">Test2</option>
    <option value="3">Test3</option>
</select>

如果您使用强类型模型,它看起来就像是跟随。

@model MVC3Stack.Models.MyModel
@{
    ViewBag.Title = "Home Page";
}
<script type="text/javascript">
    $(document).ready(function () {
        $("#test").val('@Model.SelectedValue');
    });
</script>
</div>
<select id="test">
    <option value="1">Test1</option>
    <option value="2">Test2</option>
    <option value="3">Test3</option>
</select>

还有一个例子

指数行动方法

public ActionResult Index()
{
    MyModel mod = new MyModel {  SelectedValue=2 };
    return View(mod);
}

视图

@model MVC3Stack.Models.MyModel
@{
    ViewBag.Title = "Home Page";
    List<SelectListItem> lst = new List<SelectListItem>();
    lst.Add(new SelectListItem() { Value="1", Text="test1" });
    lst.Add(new SelectListItem() { Value = "2", Text = "test2" });
    lst.Add(new SelectListItem() { Value = "3", Text = "test3" });

}
<h2>@ViewBag.Message</h2>
</div>
@Html.DropDownListFor(m => m.SelectedValue, lst);