gpt4 book ai didi

asp.net-mvc - Asp.Net MVC Ajax.BeginForm 未通过 Ajax 提交

转载 作者:行者123 更新时间:2023-12-02 02:26:56 24 4
gpt4 key购买 nike

我的表格如下

<div id="contact-form" class="hidden" title="Online Request Form">
@Using (Ajax.BeginForm("Contact", "Main",
Nothing,
New AjaxOptions With {.UpdateTargetId = "status", .HttpMethod = "post"},
New With {.id = "contactUs"}))
@<div>
@Html.LabelFor(Function(m) m.Name)<br />
@Html.TextBoxFor(Function(m) m.Name)<br />
@Html.LabelFor(Function(m) m.Phone)<br />
@Html.TextBoxFor(Function(m) m.Phone)<br />
@Html.LabelFor(Function(m) m.Email)<br />
@Html.TextBoxFor(Function(m) m.Email)<br />
@Html.LabelFor(Function(m) m.Question)<br />
@Html.TextAreaFor(Function(m) m.Question)<br />
@Html.LabelFor(function(m) m.Security)<br />
@Html.TextBoxFor(Function(m) m.Security)<br />
<noscript>
<input type="submit" name="submit" value="Ok" />
</noscript>
@Html.ValidationSummary("Oops, please correct the errors.")<span id="status">@TempData("status")</span>
</div>
End Using
</div>

我在 jQuery-UI 模态窗口中打开它

<script>
$(function () {

// Open the modal dialog from the div.contact-us click event
$('#contact-us').click(function () {
$('#contact-form').dialog('open');
return false;
});

// Manage the modal dialog behavior.
$('#contact-form').dialog({
modal: true,
autoOpen: false,
buttons: {
Cancel: function () {
$(this).dialog('close');
},
Ok: function () {
$('form#contactUs').trigger('submit');
}
}
});
});

</script>

当我单击“确定”按钮时,它会发布到适当的 Controller ,但它不是通过 AJAX 发布

    ''# fix the StackOverflow code coloring issue.
<HttpPost()>
Function Contact(ByVal contactForm As Models.ContactForm) As ActionResult
ViewData("Testimonials") = Helpers.GetTestimonials

If ModelState.IsValid Then
''# Submit the email
TempData("status") = "Thank you, we will be in touch"
Else
''# Return False
TempData("status") = "Oops, please correct the errors."
End If


If Request.IsAjaxRequest Then
Return Content(TempData("status").ToString)
Else
Return View("Index")
End If
End Function

我做错了什么?提交表单后,我的 URL 是 http://example.com/Main/Contact这告诉我IsAjaxRequest = false

编辑

即使我不使用 jquery-ui“确定”按钮,只需添加 <input type="submit" name="submit" value="Ok" />到表单,表单不使用 Ajax 进行发布

最佳答案

你有jquery ajax脚本吗?当我没有包含它时,我注意到了这种行为:

<script src="@Url.Content("~/Scripts/jquery.unobtrusive-ajax.min.js")" type="text/javascript"></script>

关于asp.net-mvc - Asp.Net MVC Ajax.BeginForm 未通过 Ajax 提交,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4476511/

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