2011-07-19 11 views
0

を保存:ID、FR、NLコードASP.NET MVC:ドロップダウン位置決めと、私は私の見解では、これを持って

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

ルックアップクラスは、プロパティを持っています。 の値は、ドロップダウンのテキスト表示です。

LkpTypeImmobilierがリストであるとLookupTypeImmobilierが選択され、値が正確である(写真を参照)が、ドロップダウンがsettedされていません。私が選択して、私は次のように投稿する

:テキストボックスから来る

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 これを試みたが動作しない(NULL I投稿していない位置決め)3

ませんソリューション

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

アップデートは、私は回避策を使用する場合。モデルではなくフィールドでjQueryフィールドで投稿します。エディションでは、jQueryでドロップダウンリストの位置を設定しました。それは本当に正しい方法ではありませんが、仕事です、私は解決策を見つけることを願っています。

+0

そのコードのためのページに表示されるHTMLは、あなたは、どのようなことが可能ですチェック? – ShankarSangoli

+0

Update1を参照してください –

+0

mmmmhhh私はDropDownListForを使用する必要があります私は –

答えて

0

動作するはずです以下:

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

今すぐあなたのコントローラのアクションは、ビューモデルにLookupTypeImmobilierの値を設定していることを確認しDropDownListコントロールのデフォルト値を設定するために:あなたがしLookupTypeImmobilierプロパティを設定している値がで存在していることを確認してください

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

LkpTypeImmobilierコレクション。これにより、ドロップダウンリストの対応する要素が自動的に事前選択されます。また、Codeプロパティに対応する必要があります。ではなく、Valueです。

限り、あなたのPOSTのコントローラのアクションが関係しているに戻って選択した値を取得することと、単純にアクション引数として、この同じビューモデルを使用します。

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

ちょうど試しましたが、うまく動作しますが動作しません。フォームを保存すると、コントローラのドロップダウン(テキストボックス、テキストエリア、チェックボックスはOK)のnullが返されます。要素を編集するときに、ドロップダウンの位置付け(テキストボックス、テキストエリア、チェックボックスは問題ありません) –

0

説明してください、「ルックアップクラスは、プロパティがあります:同上、FR、NL、価値と規範」を、しかし、あなたのビューは、@ Html.DropDownList(「LookupTypeImmobilier」...

はあなたのような何かを書くことができますがあります:

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

申し訳ありませんが、多分私は何か間違ったことを:)理解

+0

明確にするために、私は、データベース(とクラス)は、これらのフィールドを持っているが、 "コード"と "値"のドロップダウンリストでバインドされたNHibernateを使用 –

+0

あなたは火かき棒で見ることができますあなたの行動に私はあなたの選択した価値が名前 'LookupTypeImmobilier'を持つと思います。右? –

関連する問題