1
我有一個視圖,它可以用填充的下拉列表成功呈現。dropdownlistfor幫助器值在返回視圖時不顯示
List<SelectListItem> listBuildings = new List<SelectListItem>(context.Buildings.Select(b => new SelectListItem { Value = b.ID.ToString(), Text = b.BuildingName, }).ToList());
SelectListItem buildingZeroItem = new SelectListItem() { Value = "0", Text = "Select Building" };
listBuildings.Add(buildingZeroItem);
model.Building = listBuildings;
它正確顯示在瀏覽器中。然後我提交表單後這樣
@using (Html.BeginForm("Booking", "Common", FormMethod.Post))
{
<div class="col-md-6">
@Html.LabelFor(m => m.Building)
@Html.DropDownListFor(m => m.Building, Model.Building, new { @class = "form-control", @style = "width:100%;" })
</div>
}
這裏是在控制器後...
[HttpPost]
public ActionResult Booking(BookingViewModel model)
{
var myVals= model.Building
}
中沒有任何model.Building。我在這裏錯過了非常認真的事情。我有伴隨的文本框,它們的值被傳遞。它只是幫助者值的下拉列表,我找不到。這是爲了驗證。我想知道是否有人可以給我一點解釋,說我哪裏出錯了。謝謝。
您正在使用與包含列表的對象相同的屬性。它應該是這樣的:'@ Html.DropDownListFor(m => m.BuildingId,Model.Buildings,' – markpsmith
並且不要將'buildingZeroItem'添加到你的'SelectList' - 使用'@ Html.DropDownListFor(m => m .BuildingId,Model.Buildings,「Select Building」)'所以它正確地生成一個帶有'null'值的標籤選項 –