2
當在模型空這是我的模型:MVC的SelectList回發到控制器
[Display(Name = "Company")]
public int CompanyId { get; set; }
public SelectList Companies { get; set; }
設定數據視圖
[HttpGet]
[AllowAnonymous]
public ActionResult Index()
{
var model = new Ticket
{
Companies = new SelectList(new List<SelectListItem> { new SelectListItem { Text = "0", Value = "0" } }, "Value", "Text")
};
return View(model);
}
的觀點:
<div class="form-group">
@Html.LabelFor(m => m.CompanyId, new { @class = "col-md-6 col-md-pull-1 control-label" })
<div class="col-md-3 col-md-pull-1">
@Html.DropDownListFor(m => m.CompanyId, Model.Companies, new { @class = "selectpicker form-control" })
</div>
</div>
結果:
我怎樣才能得到SelectList被回發給控制器,所以我不必繼續填充它?
所以你想返回傳遞給第一次查看的整個列表? –
你沒有。您需要爲每個「SelectListItem」的每個「Value」和「Text」屬性生成一個隱藏的輸入,這會顯着增加發送到視圖然後再返回的數據量。如果你需要返回視圖(如果你有'ModelState'錯誤,並且使用客戶端驗證將減少這種情況發生的可能性,那麼應該只是這種情況) –
And'Companies =新的SelectList(新列表 {新的SelectListItem {文本=「0」,值=「0」}},「價值」,「文本」)是無稽之談。你已經有'List '(這是'@ Html.DropDownListFor()'要求的)。從現有的「SelectList」中創建另一個「SelectList」是沒有意義的。 –