MVC4 では検証属性を使用してこのタスクを実行していることに気付きました。しかし、私は別の状況に対処していることを知っています。
これがモデルです。その中にコレクション プロパティがありChoices
(これには常に 5 つの要素があります) CorectChoice
、コレクションから選択されたインデックスはどこにありますか。
public class MultipleChoiceQuestionTemplate : QuestionTemplate
{
public MultipleChoiceQuestionTemplate() { ... }
[DisplayName("Question")]
public string QuestionText { get; set; }
public List<string> Choices { get; set; }
[DisplayName("Correct Choice")]
public int CorrectChoice { get; set; }
}
これがビューです。プレゼンテーションをご覧ください。
<div id="choices">
@for (int i = 0; i < Model.Choices5.Count; i++) {
<div class="choice-container" style="display: block;">
@Html.TextBoxFor(model => model.Choices5[i])
@Html.RadioButtonFor(model => model.CorrectChoice, i)
</div>
}
</div>
ユーザーは入力に空の文字列を残すことができることに注意してください (type="text")。選択したインデックス (ラジオボタン) に文字列が必要であることを検証する必要があります。
フォームに送信する前に検証するにはどうすればよいですか?