我的表格如下
- <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>
当我点击“确定”按钮,它发布到相应的控制器,但它不是通过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
我究竟做错了什么?提交表单后,我的网址为http://example.com/Main/Contact,告诉我IsAjaxRequest = false
编辑
即使我不使用jquery-ui“ok”按钮,只需添加< input type =“submit”name =“submit”value =“Ok”/>以表格形式,没有Ajax的表单
解决方法
你有jquery ajax脚本吗?我没有注意到这种行为:
- <script src="@Url.Content("~/Scripts/jquery.unobtrusive-ajax.min.js")" type="text/javascript"></script>