我不知道为什么ValidationSummary
在我执行Html.BeginForm
using时不工作AJAX.submit
。
@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
了界面,当我点击提交按钮时,当我的验证模型有错误时执行一个帖子,并且应该在ValidationSummary
.