ASP.NET MVC 3.0 を使用してアンケートを作成したいと考えています。一部の質問には、ラジオ ボタンといくつかのチェック ボックスがあります。ビュー側とビューモデルの正しい構文を知りたいです。回答のオプションをコレクションに保存したいと思います。IEnumerable は使用するのに適したコレクションでしょうか? これが私のViewModelコードの一部です。
[DisplayName("Country")]
[Required(ErrorMessage = "Country is required.")]
public string Country { get; set; }
public IEnumerable<string> Countries { get; set; }
[DisplayName("Business")]
[Required(ErrorMessage = "Please select a business unit.")]
public string BusinessUnit { get; set; }
public IEnumerable<string> Businesses { get; set; }
public Boolean ToGetFit { get; set; }
public Boolean ToChallengeMyself { get; set; }
public Boolean ToBeHealthier { get; set; }
public Boolean ChallengeOther { get; set; }
public string OtherString { get; set; }
public void build()
{
var myService = new SurveyService(new SurveyRepository());
Name = myService.getName();
Email = myService.getEmail();
}
ビルド メソッドが呼び出されたときに ViewModel に情報を取得する最良の方法は何ですか? IEnumerable を使用する必要がありますか、それとも単に文字列を使用する必要がありますか?
これが私の.aspxページの私のコードです。
<li> What country do you live in? <br />
<%= Html.RadioButtonFor(model => model.Country, "Canada", true) %> Ecuador<br />
<%= Html.RadioButtonFor(model => model.Country, "Chile", true) %> Ghana <br />
<%= Html.RadioButtonFor(model => model.Country, "Italy", true) %> Nigeria <br />
<%= Html.RadioButtonFor(model => model.Country, "Germany", true) %> Romania
</li>
<li> What business unit do you work in?<br />
<%= Html.RadioButtonFor(model => model.BusinessUnit, "Pharmaceuticals", true ) %> Pharmaceuticals <br />
<%= Html.RadioButtonFor(model => model.BusinessUnit, "Mechanics", true) %> Vaccines <br />
<%= Html.RadioButtonFor(model => model.BusinessUnit, "R&D") %> R&D <br />
<%= Html.RadioButtonFor(model => model.BusinessUnit, "Distribution", true) %> Distribution <br />
</li>
<li> Why do you want to take part in this workout? <br />
<%= Html.CheckBoxFor(model => model.ToGetFit ) %> To get in shape <br />
<%= Html.CheckBoxFor(model => model.ToChallengeMyself ) %> To challenge myself <br />
<%= Html.CheckBoxFor(model => model.ToBeHealthier) %> To be healthier <br />
<%= Html.CheckBoxFor(model => model.ChallengeOther) %> Other
<%= Html.TextBoxFor(model => model.OtherString) %>
</li>
ASP.NET MVC は初めてですが、ASP.NET と MVC パターンの両方の経験があります。可能な限り関心の分離に重点を置きたいと思います。
コントローラー クラスがビルド メソッドを呼び出します。モデル/データベースから情報を取得するリポジトリ オブジェクトを取得する Service クラスがあります。
! ラジオ ボタンをデータベースから動的に取得したい。そして、ユーザーが以前のセッションから既に何かを選択している場合は、それを ViewModel で見つけて、ページをロードするときに既に選択されていることを望みます。