2014-03-25 62 views
0

這裏的視圖代碼:後的JavaScript生成選擇選項

<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>'); 
     } 
    } 
}); 

再說說ModelCar類型。我想將所選值作爲Car.Color發佈。

如何將該值與我的Model屬性相關聯?

回答

0

如果你看看DropDownListFor如何呈現HTML,假設你的視圖看起來像這樣(假設你有你的汽車模型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將ŧ ake你的值,並根據你的表單中的屬性名稱將它們翻譯成你的action方法中的對象。

所以,你只需要給你的表單中的元素的名稱相應的名稱在你的模型的屬性。要了解更多信息,請搜索型號活頁夾的信息,特別是DefaultModelBinder

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>