2011-07-19 35 views
0

我有這個在我看來:ASP.NET MVC:下拉定位和保存

@Html.DropDownList("LookupTypeImmobilier", new SelectList(Model.LkpTypeImmobilier, "Code", "Value", Model.LookupTypeImmobilier.Code)) 

查找類有屬性:標識,FR,NL價值代碼是在下拉菜單中顯示的文字。

LkpTypeImmobilier是列表和LookupTypeImmobilier被選定的,值是正確的(見圖片),但是下拉沒有設置好的。

當我選擇,我張貼這樣的:

var jqxhr = $.post("Controller/Action", $("form").serialize(), 
function (data) { 
}); 

從文本里的值,textarea的張貼,我讓他們在控制,但沒有下拉。

你有什麼想法嗎?

謝謝,

enter image description here

enter image description here

更新1(ShankarSangoli請求)

<select id="LookupTypeImmobilier" name="LookupTypeImmobilier"><option value="0">----</option> 
<option value="1">habitation principale/logement familial</option> 
<option value="2">résidence secondaire</option> 
<option value="3">immeuble de rapport</option> 
<option value="4">terrain à bâtir</option> 
<option value="5">terre agricole</option> 
<option value="6">bois</option> 
</select> 

更新2 與此嘗試,但不能工作(空當我張貼,並沒有定位)

@Html.DropDownListFor(m => m.LookupTypeImmobilier, new SelectList(Model.LkpTypeImmobilier, "Code", "Value", Model.LookupTypeImmobilier)) 

更新3

無解,然後我用一種變通方法。我按字段發佈jQuery,而不是模型。在版本中,我通過jQuery設置了下拉列表的位置。這真的不是正確的方式,但工作,我希望找到一個解決方案。

+0

什麼是呈現爲代碼在頁面上的HTML,你能檢查? – ShankarSangoli

+0

查看Update1 –

+0

mmmmhhh我必須使用DropDownListFor我認爲 –

回答

0

下面應該工作:

@Html.DropDownListFor(
    m => m.LookupTypeImmobilier, 
    new SelectList(Model.LkpTypeImmobilier, "Code", "Value") 
) 

現在爲了設置爲下拉列表默認值確保您的控制器動作設置的視圖模型的LookupTypeImmobilier值:

var model = new MyViewModel 
{ 
    // Preselect the third element which in the rendered HTML has value="3" 
    LookupTypeImmobilier = "3", 
    LkpTypeImmobilier = ... 
} 
return View(model); 

確保值要設置中存在LookupTypeImmobilier財產LkpTypeImmobilier集合。這將自動預選下拉列表的相應元素。它應該對應於Code財產,而不是Value

至於獲得所選值回在帖子中控制器的動作而言,簡單地使用相同的視圖模型作爲行動的說法:

[HttpPost] 
public ActionResult Foo(MyViewModel model) 
{ 
    // model.LookupTypeImmobilier will contain the selected value here 
    ... 
} 
+0

剛試過,應該工作但不工作。當我保存表格時,在控制器的下拉列表框中輸入null(textbox,textarea,複選框都可以)。當我編輯一個元素沒有下拉定位(文本框,textarea,複選框都可以) –

0

解釋吧,「查找類有個屬性:id,FR,NL,值和碼字」,但你的觀點有@ Html.DropDownList(「LookupTypeImmobilier」 ......

你可以寫類似:

@Html.DropDownListFor(m => m.Value,new SelectList(/**/)) 

對不起,也許我不懂什麼不對:)

+0

爲了清楚起見,我使用NHibernate,數據庫(然後類)有這些領域,但綁定下拉列表它是「代碼」和「價值」 –

+0

你可以看看螢火蟲哪些數據去到你的行動。我認爲您選擇的值將具有名稱'LookupTypeImmobilier'。對? –