【发布时间】:2016-10-15 07:18:06
【问题描述】:
我正在使用 MVC,但遇到下拉问题。
我传递了一个带有属性“类型”和“访问者”的模型,我保存了下拉列表的选定值。我有一个功能可以从数据库的下拉列表中写入项目,并希望下拉列表从模型属性中读取值和使其在列表中被选中,但当用户更改所选项目时也会更改属性。
第一个下拉列表在用户选择时填充模型属性中的值,但不从那里读取它(将项目设置为选中)。 第二个下拉从模型中读取值并将其设置为选定元素,但是当用户进行更改时不要重写属性。
我想从第一个下拉列表中填充选定项功能,并从第二个下拉列表中填充模型属性写入功能。
谢谢你的建议。这是代码:
<div class="row">
<div class="col-md-3 col-sm-6">
@Html.DropDownList(Model.Type,
new SelectList(new List<SelectListItem>
{
new SelectListItem {Text = "DefaultValue", Value=""},
new SelectListItem {Text = "Value1", Value="1"},
new SelectListItem {Text = "Value0", Value="0"}
}, "Value", "Text", Model.Type), new { @class = "form-control" })
</div>
<div class="col-md-3 col-sm-6">
@Html.DropDownListFor(m => m.Visitor,
new SelectList(new List<SelectListItem>
{
new SelectListItem {Text = "DefaultValue", Value=""},
new SelectListItem {Text = "Value1", Value="1"},
new SelectListItem {Text = "Value0", Value="0"}
}, "Value", "Text", Model.Visitor), new { @class = "form-control" })
</div>
【问题讨论】:
-
无法理解您想在这里问什么。但是从第一个创建相同的
IEnumerable<SelectListItem>是没有意义的(并且设置SelectList的最后一个参数在您绑定到一个属性(它被忽略)并且您设置null标签选项时使用DropDownListFor()的第三个参数 - 您的代码只需为@Html.DropDownList(Model.Type, new List<SelectListItem>{ new SelectListItem {Text = "Value1", Value="1"}, new SelectListItem {Text = "Value0", Value="0"}, "DefaultValue", new { @class = "form-control" }) -
而生成
SelectList的代码属于控制器,而不是视图。
标签: c# asp.net-mvc dropdownlistfor