C# Ajax.BeginForm是否在MVC中通过jQuery UI对话框成功捕获?
我正在使用Jquery UI对话框加载部分视图。在partialview post submit中,我希望在C# Ajax.BeginForm是否在MVC中通过jQuery UI对话框成功捕获?,c#,ajax,asp.net-mvc,jquery-ui,jquery-ui-dialog,C#,Ajax,Asp.net Mvc,Jquery Ui,Jquery Ui Dialog,我正在使用Jquery UI对话框加载部分视图。在partialview post submit中,我希望在updateSuccess函数中捕获结果。但函数从未被调用,结果显示在页面上 父页 局部视图 @使用(Ajax.BeginForm(“索引”,“联系人提交”,新的AjaxOptions{ InsertionMode=InsertionMode.Replace,HttpMethod=“POST”, OnSuccess=“updateSuccess”},新的{enctype=“多部分/表单数据
updateSuccess
函数中捕获结果。但函数从未被调用,结果显示在页面上
父页
局部视图
@使用(Ajax.BeginForm(“索引”,“联系人提交”,新的AjaxOptions{
InsertionMode=InsertionMode.Replace,HttpMethod=“POST”,
OnSuccess=“updateSuccess”},新的{enctype=“多部分/表单数据”,
@class=“form horizontal”,role=“form”})
{
//Html代码在这里
提交
取消
}
提交后在浏览器上显示如下内容
如何处理该问题,以及在提交结果后如何调用函数?您需要在不引人注意的情况下引用jquery,否则视图将更改 这让我以前很吃惊,因此我发现在jQuery中编写自己的ajax调用要容易得多,所以我不需要这个引用
祝您好运@james123您可以使用visual studio中的nuget软件包控制台安装它,也可以下载它或引用CDN。到这里来参考正确的一个。一旦被引用,它将立即工作。确保您的引用是在jquery引用I安装了Microsoft.jquery.Unobtrusive 3.0之后,但我没有看到任何JS文件。Package.config有引用。检查脚本/导入的库这通常是nuget放置js文件的地方。你也需要在你的视图中引用这个脚本,我知道了。我是否需要在“@Scripts.Render(“~/bundles/jquery”)”@James123之后包含此内容-不用担心,很高兴您对其进行了排序:)
<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>
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);
}
}
@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>
}