我有一个DropdownlistFor,它没有获得在DDL中选择的值。我已经做了一些研究并尝试实施我见过的一些建议,但我仍然没有工作。
我正在使用IEnumberable和string属性来保存我的ViewModel中的选定值。
public IEnumerable<SelectListItem> AvailableSeats { get; set; }
public string Seat { get; set; }
创建ViewModel时,我将Seat属性设置为初始值。
Seat = "FO";
这就是我填充SelectListItem的方式。 “FO”总是一个选项,但他们有“CA”我也将它添加到SelectList中。
public static List<SelectListItem> GetAvailableSeats(string currentSeat)
{
List<SelectListItem> seats = new List<SelectListItem>();
seats.Add(new SelectListItem { Text = "FO", Value = "FO" });
if (currentSeat.ToUpper() == "CA")
seats.Add(new SelectListItem { Text = "CA", Value = "CA", Selected = true });
return seats;
}
这是我的剃刀视图:
@Html.DropDownListFor(m => m.Seat, Model.AvailableSeats, new { @class = "form-control" })
生成的HTML是:
<select class="form-control" id="Seat" name="Seat">
<option value="FO">FO</option>
<option selected="selected" value="CA">CA</option>
</select>
但是,当我选择“FO”作为我的选项然后提交我的表单时,ViewModel仍然具有“CA”。
答案 0 :(得分:0)
经历了这个后,我终于偶然发现了这个问题 post
我发布以防万一可以帮助其他人。在我的表格中,我正在分配&#34;座位&#34;隐藏字段@Html.HiddenFor(m => m.Seat)
的属性,我没有做到这一点。摆脱那个隐藏的领域解决了这个问题。