以下是视图中的代码:
<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
属性相关联?
答案 0 :(得分:0)
MVC模型绑定器的工作原理是将与HTML输入关联的name属性与预期接收的Model的属性相匹配。
所以你需要建立你的选择:
<select id="SelectOptions" name="Color"></select>
但是,HTML帮助程序将为您完成所有工作:
@Html.DropDownListFor(x => x.Color, new List<SelectListItem>())
将生成:
<select id="Color" name="Color"></select>
答案 1 :(得分:0)
如果你看一下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
。