ब्रेंट के उत्तर में कुछ संशोधन के साथ कोड के लिए नीचे देखें। CheckValidationErrorResponse प्रमाणीकरण सारांश की तलाश करता है चाहे वह वैध या अमान्य स्थिति में है, और यदि नहीं मिला तो उसे सम्मिलित करता है। यदि प्रतिक्रिया में सत्यापन त्रुटियां पाई जाती हैं, तो यह सारांश में सत्यापन-सारांश-त्रुटियों की कक्षा लागू करती है, अन्यथा यह सत्यापन-सारांश-मान्य लागू होती है। यह मानता है कि सारांश की दृश्यता को नियंत्रित करने के लिए सीएसएस मौजूद है।
कोड फ़ील्ड-सत्यापन-त्रुटि के मौजूदा उदाहरणों को साफ़ करता है, और प्रतिक्रिया में मिली त्रुटियों के लिए उन्हें पुनः लागू करता है।
function getValidationSummary(form) {
var $summ = $(form).find('*[data-valmsg-summary="true"]');
if ($summ.length == 0)
{
$summ = $('<div class="validation-summary-valid" data-valmsg-summary="true"><ul></ul></div>');
$summ.appendTo(form);
}
return $summ;
}
function getValidationList(summary) {
var $list = $(summary).children('ul');
if ($list.length == 0) {
$list = $('<ul></ul>');
$list.appendTo(summary);
}
return $list;
}
function getResponseValidationErrors(data) {
if (data && data.ModelErrors && data.ModelErrors.length > 0)
return data.ModelErrors;
return null;
}
function CheckValidationErrorResponse(data, form, summaryElement) {
var errors = getResponseValidationErrors(data);
var $summ = summaryElement || getValidationSummary(form);
var $list = getValidationList($summ);
$list.html('');
$(form).find(".field-validation-error")
.removeClass("field-validation-error")
.addClass("field-validation-valid");
if (!errors)
{
$summ.removeClass('validation-summary-errors').addClass('validation-summary-valid');
return false;
}
$.each(errors, function (i, item) {
var $val, $input, errorList = "";
if (item.Name) {
$val = $(form).find(".field-validation-valid, .field-validation-error")
.filter("[data-valmsg-for=" + item.Name + "]")
.removeClass("field-validation-valid")
.addClass("field-validation-error");
$input = $(form).find("*[name='" + item.Name + "']");
if (!$input.is(":hidden") && !$val.length)
{
$input.parent().append("<span class='field-validation-error' data-valmsg-for='" + item.Name + "' data-valmsg-replace='false'>*</span>");
}
$input.addClass("input-validation-error");
}
$.each(item.Errors, function (c, err) {
errorList += "<li>" + err + "</li>";
});
$list.append(errorList);
});
$summ.removeClass('validation-summary-valid').addClass('validation-summary-errors');
return true;
}
यहां एक समाधान है: http://stackoverflow.com/questions/2845852/asp-net-mvc-how-to-convert-modelstate-errors-to-json –