gpt4 book ai didi

c# - Ajax.BeginForm 没有在 MVC 中使用 jQuery UI 对话框捕获 OnSuccess?

转载 作者:太空宇宙 更新时间:2023-11-03 10:53:05 26 4
gpt4 key购买 nike

我正在使用 Jquery UI 对话框加载局部 View 。在 partialview post submit 中,我想在 updateSuccess 函数中捕获结果。但是函数从未被调用,结果显示在页面上。

父页面

    <script type="text/javascript">

function display_dialog() {

$('#my-dialog').dialog({
resizable: false,
modal: true,
show: "blind",
hide: "blind",
open: function (event, ui) {
$(this).load("/ContactSubmission/Index" );
}
});

function updateSuccess(data) {
if (data.Success == true) {
alert("Inside Update");
//now we can close the dialog
$('#my-dialog').dialog( "close" );
//twitter type notification
$('#commonMessage').html("Update Complete");
$('#commonMessage').delay(400).slideDown(400).delay(3000).slideUp(400);
} else {
$("#update-message").html(data.ErrorMessage);
$("#update-message").show();
}
}
</script>

Controller

public ActionResult Index()
{
var contact = new Contact
{
Countries = Context.GetCountries()
};
return PartialView(contact);
}
[HttpPost]
public JsonResult Index(Contact contact)
{
if (ModelState.IsValid)
{
if (contact != null)
{
//Some business logic is here
var result = new { Success = "True", Message = "No Error" };
return Json(result, JsonRequestBehavior.DenyGet);
}
else{
var result = new { Success = "False", Message = "Contact is Null" };
return Json(result, JsonRequestBehavior.DenyGet);
}
}
else
{
var result = new { Success = "False", Message = "Invalid state" };
return Json(result, JsonRequestBehavior.DenyGet);
}
}

局部 View

@using (Ajax.BeginForm("Index", "ContactSubmission", new AjaxOptions{ 
InsertionMode = InsertionMode.Replace, HttpMethod = "POST",
OnSuccess = "updateSuccess" },new { enctype = "multipart/form-data",
@class = "form-horizontal", role = "form" }))
{
// Html code is here
<div class="form-group">
<div class="col-sm-4 col-md-offset-5">
<button type="submit" class="btn btn-primary">Submit</button>
<button type="button" class="btn btn-default" id="cancel">Cancel
</button>
</div>
</div>
}

提交后在浏览器上显示如下

enter image description here

如何处理问题,提交结果后如何调用函数?

最佳答案

你需要引用 jquery Unobtrusive 否则 View 会改变。

http://www.nuget.org/packages/jQuery.Ajax.Unobtrusive/

这让我很困惑,因此我发现在 jQuery 中编写自己的 ajax 调用要容易得多,所以我不需要这个引用。

祝你好运

关于c# - Ajax.BeginForm 没有在 MVC 中使用 jQuery UI 对话框捕获 OnSuccess?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20616260/

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