gpt4 book ai didi

jquery - 将验证错误返回到 MVC 3 中的 jQuery 对话框

转载 作者:行者123 更新时间:2023-12-01 05:01:16 25 4
gpt4 key购买 nike

您好,有一个加载 jQuery 模式对话框的页面,该模式包含一个表单。我如何返回错误以便在模态中加载,如果我返回 PartialView,页面仅加载对话框表单内容(仅用于模态)

这是 View

<span><a id="end" href="#">Launch End Dialog</a> </span>



<div id="end-dialog" class="dialog">
<div id="end-inner"></div>
<hr />
</div>

<script type="text/javascript">
$(function () {


var endDialog = $("#end-care-plan-dialog").dialog({

});

$("#end").click(function () {
endDialog.dialog('close');
});

$('#end').click(function () {
$('#end-inner').load(baseUrl + "/End", $.param({ id: '@Model.id' }),
function () {
endDialog.dialog('open');
});
});
});
</script>

这是我的 Controller

[HttpPost]
public ActionResult End(EndVM end)
{
if (ModelState.IsValid)
{
//do work

}

//return so that pop up now has validation errors
return PartialView(end);
}

注意 - jquery.validate 和 jquery.validate.unobstrusive 已加载到 View 中

谢谢,希望这是有道理的。

更新:Diego - 这是包含表单(加载到 moal 中)的部分 View

@using (Html.BeginForm<EndController>(c => c.End(@Model.Id)))

{ @Html.HiddenFor(m => m.Id) @Html.DropDownListFor(m => m.EndReasonId, RefData.EndReasons) 其他原因 @Html.EditorFor(m => m.EndReasonOther) @Html.ValidationMessageFor(m => m.EndReasonOther) @(Html.ActionLink(c => c.Edit(@Model.Id), "取消")) @Html.SubmitButton("结束", "结束") }

我可以在哪里修改你的代码吗?

谢谢

最佳答案

确实有道理。您只需确保表单是通过 AJAX 提交的,否则整个页面将刷新。要覆盖默认行为,您需要表单的 submit 事件的处理程序。假设您的表单是 myForm

$('#myForm').submit(function() { // catch the form's submit event
$.ajax({
data: $(this).serialize(), // get the form data
type: $(this).attr('method'), // GET or POST
url: $(this).attr('action'), // the file to call
success: function(response) { // on success..
$('#end-inner').html(response); // update the DIV
}
});
return false; // cancel original event to prevent form submitting
});

关于jquery - 将验证错误返回到 MVC 3 中的 jQuery 对话框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9856014/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com