Asp.net JQuery模式框表单验证
我曾使用视图为我的特定项目创建一个对象,但现在我必须使其适应另一个需求,例如,此对象的创建必须集成到另一个对象的创建中。问题是,在开始创建另一个对象之前,必须先创建这个对象,这样做的方法是弹出一个带有JQuery的模态对话框,其中包含创建它的表单。我必须调整创建,它运行良好,除了验证消息。它是在控制器中制作的,如:Asp.net JQuery模式框表单验证,asp.net,jquery,asp.net-mvc,Asp.net,Jquery,Asp.net Mvc,我曾使用视图为我的特定项目创建一个对象,但现在我必须使其适应另一个需求,例如,此对象的创建必须集成到另一个对象的创建中。问题是,在开始创建另一个对象之前,必须先创建这个对象,这样做的方法是弹出一个带有JQuery的模态对话框,其中包含创建它的表单。我必须调整创建,它运行良好,除了验证消息。它是在控制器中制作的,如: if (not.NotName.Trim().Length == 0) { ModelState.AddModelError("NotName", "Name is requ
if (not.NotName.Trim().Length == 0)
{
ModelState.AddModelError("NotName", "Name is required");
}
if (_notification.checkIfExists(not.NotName, not.NotRecID))
{
ModelState.AddModelError("NotName", "Notification already exists");
}
在使用普通视图之前,它工作得很好,但现在我无法像以前那样获得验证消息。如何在模式框中获取控制器抛出的验证消息?因为现在当我为了得到错误而故意在表单中出错时,它不会出现。我在网站上看到了错误,因为我在firebug上看到过,但它没有出现在我的模型框中。如何检索此错误?你知道有什么教程可以帮我吗
javascript方法是:
function newNotificationModalBox() {
$("#newNotificationModalBox").dialog("destroy");
$("#newNotificationModalBox").dialog({
modal: true,
open: function(event, ui) {
//resetNotificationForm();
},
buttons: {
'Create': function() {
var name = document.getElementById("NotName").value;
var status = document.getElementById("NotificationStatus").value;
var replace = document.getElementById("ReplaceYes").checked;
var notificationToReplace = document.getElementById("ReplaceNotificationID").value;
var dataString = 'NotName=' + name + '&NotificationStatus=' + status + '&Replace=' + replace + '&ReplaceNotificationID=' + notificationToReplace;
$.ajax({
type: "POST",
url: "/Suspension/CreateNotification",
data: dataString
});
var list = document.getElementById("sNotification").options.length;
loadNotifications("/SearchSuspensions/LoadNotifications/", "A", "sNotification", "pNotificationName");
alert('submitting form');
//alert(document.getElementById("sNotification").options.length);
if (list != document.getElementById("sNotification").options.length) {
$(this).dialog('close');
setTimeout('selectNotificationCreated();', 100);
alert('Notification succesfully created');
}
else {
alert('Error');
}
},
'Cancel': function() {
$(this).dialog('close');
}
}
});
}
谢谢一个可能的方法是创建一个局部视图来呈现表单。然后创建一个将渲染局部视图的操作。现在使用AJAX将部分视图加载到模式中。发布时,模态将通过AJAX发布表单。当post返回时,您将获得成功,或者它应将带有错误的表单返回给您,从而允许您在模式中重新加载表单和错误消息。一种可能性是创建一个呈现表单的局部视图。然后创建一个将渲染局部视图的操作。现在使用AJAX将部分视图加载到模式中。发布时,模态将通过AJAX发布表单。当post返回时,您将获得成功,或者它将返回带有错误的表单,允许您在模式中重新加载表单和错误消息。我理解您给我的步骤,事实上,这就是我正在做的。我的问题是当我进入最后一部分时,我的意思是,当我必须在ajax调用后显示从控制器发回的表单时。是否有方法刷新模式以获得此结果?为了更清楚一点,我发布了javascript方法。谢谢,看起来您正在使用Jquery。尝试使用jquery.forms和ajaxSubmit功能。这有一个完整的函数,允许你编写一个在回发时发生的函数。我理解你给我的步骤,事实上,这就是我正在做的。我的问题是当我进入最后一部分时,我的意思是,当我必须在ajax调用后显示从控制器发回的表单时。是否有方法刷新模式以获得此结果?为了更清楚一点,我发布了javascript方法。谢谢,看起来您正在使用Jquery。尝试使用jquery.forms和ajaxSubmit功能。这有一个完整的函数,允许您编写回发时发生的函数。