【发布时间】:2013-03-02 17:59:36
【问题描述】:
当我使用AJAX.submit 执行Html.BeginForm 时,我不知道为什么ValidationSummary 不起作用。
@model Contoso.MvcApplication.Models.Questions.MultipleChoiceQuestionTemplate
@using (Html.BeginForm("EditQuestion", "Question", FormMethod.Post, new { id = "editQuestionForm" }))
{
@Html.ValidationSummary(true)
@Html.EditorForModel("Questions/_MultipleChoiceQuestion")
<p>
<input type="submit" value="Save" />
</p>
}
public class MultipleChoiceQuestionTemplate : QuestionTemplate, IValidatableObject
{
public MultipleChoiceQuestionTemplate() { ... }
[DisplayName("Question")]
public string QuestionText { get; set; }
public List<string> Choices { get; set; }
[DisplayName("Correct Choice")]
public int CorrectChoice { get; set; }
public IEnumerable<ValidationResult> Validate(ValidationContext validationContext)
{
if (String.IsNullOrEmpty(Choices5[CorrectChoice]))
{
yield return new ValidationResult("ERROR");
}
}
}
这是我的 jquery 提交函数:
$("#editQuestionForm").submit(function () {
if ($(this).valid()) {
$.ajax({
url: this.action,
type: this.method,
data: $(this).serialize(),
success: function (result) {
$('#result').html(result);
}
});
}
return false;
});
但我有点东西,因为正如你在上面看到的,我已经实现了ValidatableObject 接口,当我点击提交按钮时,当我的验证模型有错误时执行一个帖子,并且应该在@中显示错误987654327@.
【问题讨论】:
-
“我是什么东西” ? 〜请澄清你的问题的语言。谢谢。
标签: jquery asp.net asp.net-mvc asp.net-mvc-4 jquery-validate