我意识到在MVC4中使用验证属性来执行此任务。但知道我正在处理不同的情况。如何在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>
注意,用户可以在离开输入空字符串(类型= “文本”)。我需要验证选定的索引(单选按钮)应该有一个字符串。
如何在提交表单之前验证它?