この質問に関連して:
StackOverflow-c#mvcでのラジオボタンのグループ化
選択したオプションをフォームからデータベースにロードして保存することができましたが、ユーザーがこれを編集する必要がある場合があります。
選択したユーザーの選択でビューをロードするにはどうすればよいですか?選択した回答をどこに設定できるかわかりません。ロード時にデフォルト値が選択されています
この質問に関連して:
StackOverflow-c#mvcでのラジオボタンのグループ化
選択したオプションをフォームからデータベースにロードして保存することができましたが、ユーザーがこれを編集する必要がある場合があります。
選択したユーザーの選択でビューをロードするにはどうすればよいですか?選択した回答をどこに設定できるかわかりません。ロード時にデフォルト値が選択されています
アクションSelectedAnswer
でそれぞれのプロパティ値を設定でき、残りはあなたが処理Course
します。GET
EditorTemplate
public ActionResult Index()
{
var vm= new OrderViewModel();
//the below is hard coded for DEMO. you may get the data from some
//other place and set the course and options
var q1 = new Course { ID = 1, Name= "Starters" };
q1.Options.Add(new Option{ ID = 12, Title = "Prawn Cocktail " });
q1.Options.Add(new Option{ ID = 13, Title = "Soup" });
q1.SelectedAnswer = 13; //to do : get the selected answer value from DB
vm.Courses.Add(q1);
var q2 = new Course { ID = 1, Name= "Mains" };
q2.Options.Add(new Option{ ID = 42, Title = "Beef" });
q2.Options.Add(new Option{ ID = 43, Title = "Lamp" });
q2.SelectedAnswer = 16;// to do :get the selected answer value from DB
vm.Courses.Add(q2);
return View(vm);
}
エディターテンプレートに変更はありません。それは前の答えと同じままです。
@model Course
<div>
@Html.HiddenFor(x=>x.ID)
<h3> @Model.Name</h3>
@foreach (var a in Model.Options)
{
<p>
@Html.RadioButtonFor(b=>b.SelectedAnswer,a.ID) @a.Title
</p>
}
</div>
これを使って:
<%= Html.RadioButtonFor(m => m.Something, "something", new { Checked = "checked" })%>