Post javascript生成的选择选项
本文关键字:选择 选项 javascript Post | 更新日期: 2023-09-27 17:53:44
视图中的代码如下:
<select id="SelectOptions"></select>
javascript:
$.ajax({
url: '/PriseRendezVous/GetDispos/',
data: { dateText: selected },
success: function (listDispos) {
var myArray = listDispos.split(',');
for (var i = 0; i < myArray.length; i++) {
$('#SelectOptions').append('<option value="' + myArray[i] + '">' + myArray[i] + '</option>');
}
}
});
假设Model
的类型为Car
。我想将所选值发布为Car.Color
。
我如何将值与我的Model
属性关联?
如果你看一下DropDownListFor
是如何呈现HTML的,假设你的视图看起来像这样(假设你的Car模型上有一个ColorSelectList
属性,类型为SelectList
,包含所有颜色的SelectListItems):
@model Car
@Html.DropDownListFor(m => m.Color, Model.ColorSelectList)
你的HTML会显示如下:
<select id="Color" name="Color">
<option value="Blue" selected="selected">Blue</option>
<option value="Red">Red</option>
</select>
所以当你POST
窗体到你的控制器,它应该期待你的模型:
public JsonResult GetDispos(Car car) { ... }
然后,DefaultModelBinder
将获取您的值,并根据表单中的属性名称将它们转换为操作方法中的对象。
因此,您只需要在您的模型属性中为表单中的元素提供相应的名称。要了解更多相关信息,请搜索有关模型绑定器的信息,特别是DefaultModelBinder
。
MVC模型绑定器的工作原理是将与HTML输入相关联的name属性与它期望接收的模型的属性相匹配。
所以你需要像这样创建你的select:<select id="SelectOptions" name="Color"></select>
但是,HTML助手会为你做所有的工作:
@Html.DropDownListFor(x => x.Color, new List<SelectListItem>())
将生成:
<select id="Color" name="Color"></select>