DropDownListFor使用共享SelectList时设置其他属性的值

时间:2018-04-16 19:20:56

标签: c# asp.net-mvc razor asp.net-mvc-5

我的视图中有两个下拉列表,它们从模型中共享相同的SelectList。我遇到的问题是如果为" Primary"选择了一个值。而不是"辅助",当加载具有所选数据的页面时,"主要"和"中学"两者都具有相同的选定值。如果选择了两者的值,则将显示正确的值。如何让它不显示两者的价值?

示例模型:

public class ExampleViewModel {
     public string Primary {get; set;}
     public string Secondary {get; set;}
     public IEnumberable<string> Categories {get; set;}
}

示例视图:

...
@model Categories
...
<div class="form-group">
     @Html.DropDownListFor(x => x.Primary, Model.Categories, "", new { @class = "form-control" })
</div>
<div class="form-group">
     @Html.DropDownListFor(x => x.Secondary, Model.Categories, "", new { @class = "form-control" })
</div>
...

示例控制器:

public ActionResult Index(string primary, string secondary)
{
     return View(new ExampleViewModel {
          Primary = primary,
          Secondary = secondary,
          Categories = context.Query<Categories>().Select(x => new SelectListItem {
               Text = x.Name
           }));
}

1 个答案:

答案 0 :(得分:1)

如上所述,添加新的SelectList(Model.Categories),“Value”,“Text”)。 根据评论检查重载的语法。

由于