我正在使用视图为我的特定项目创建一个对象,但现在我必须将其调整为另一个要求,例如创建此对象必须在另一个创建中集成。问题是,必须在开始创建另一个对象之前创建此对象,并且这样做的方法是弹出一个带有JQuery的模式对话框,并使用表单来创建它。我必须适应创建,它的工作正常,除了验证消息。它是在控制器中制作的:
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");
}
在普通视图之前它工作正常,但现在我无法像我那样得到验证消息。如何在Modal Box中获得控制器抛出的验证消息?因为现在当我在表单中故意犯错以获得错误时它不会出现。我已经看到错误显示在网站上,因为我在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');
}
}
});
}
谢谢
答案 0 :(得分:1)
可能性是创建呈现表单的局部视图。然后创建一个将呈现局部视图的操作。现在使用AJAX将局部视图加载到模态中。发布时,模态将通过AJAX发布表单。当帖子返回时,您将成功或者应该将表单返回给您并返回错误,允许您在模式中重新加载表单和错误消息。