2012-04-26 11 views
1

私のプロジェクトでMVC3-Viewmodelを使用しています。MVC:フィールドの値が編集フォームのビュー内で選択されていることを確認するにはどうすればよいですか?

私は作成して編集するフォームを持っていますが、ユーザーがフォームを作成した後、編集可能な状態になっている必要があります。入力に表示される値と選択します。唯一動作していないフィールドは、私のDropDownListです。なぜ私は考えていない。

アプリケーションを閉じて編集フォームに行くと、ドロップダウンリストに作成された値が必要です。

foreach (SelectedQuestionViewModel items in Model.AllSelectedQuestions) 
{ 

<select id="selectstyle2" class="Grade"> 
@{ 
    <option>n/a</option> 
    int Grade = 1; 
    for (int i = 1; i <= 10; i++) 
    { 
    <option @(items.Grade.HasValue && items.Grade.Value == Grade ? "selected" : "") >@(i)</option> 
    } 
    } 
</select> 
} 

ヘルプの任意のヘルプの種類が高く評価されています。ここ

はコードです。

注:コントローラー内のコントローラーにajaxポストを使用します。このDDLから選択された値で「Model.Grade」を埋めます。

答えて

0

あなたのforeachループ内に内に選択タグがあります。このような外にこのタグを書く:

<select> 
@foreach(var x in Model) 
    //write out options 
</select> 

また、Html.DropDownList拡張メソッドを見てください。これはあなたが手でしようとしていることをしています。

http://msdn.microsoft.com/en-us/library/system.web.mvc.html.selectextensions.dropdownlist.aspx

例として

@{ 
    var selectListItems = (new[] { 1,2,3}).Select(i=>new SelectListItem { Text = i.ToString(), Value = i.ToString() }); 
} 
@Html.DropDownListFor(m=>m.AllSelectedQuestions[0].Grade, selectListItems, "n/a") 
+0

私はforeachの – Obsivus

+0

内の他のフィールドの束を持ってbeacuseあなたがこれを行うことができ、それを行うカントが、それは別のforeachループになります。 SelectListItemのコレクションを動的に作成することができます(おそらく、この静的な場所を各AllSelectedQuestionで再利用できるように静的にします)。次に、前述のようにヘルパー拡張を使用します。 – brightgarden

+0

@RammtinAvar私はあなたが何を意味するかを見て、私はあなたの質問を誤解しました。それでも 'Html.DropDownList'メソッドとそのオーバーロードを見てください。あなたがしようとしていることをします。あなたの "選択された"文字列が正しく書かれていることを確認しましたか? –

関連する問題