使用 HTML5 Ajax 表单属性不适用于 ASP.NET MVC,仍被重定向到 Action URL
Using HTML5 Ajax form attributes not working with ASP.NET MVC, still being redirected to the Action url
单击提交按钮时,它会进入控制器的GetProducts
操作方法,该方法返回我将在成功函数中处理的 JSON 日期列表。
但是,我不断被重定向到Products/GetProducts
,并在空白页面上的 Web 浏览器中看到 JSON 日期列表。如果不使用 ajax,这是正常的,但我想我指定我希望这个表单在表单属性中是 AJAX。
我的最终目标是检索日期,然后将它们添加到页面上的div
中,而不会有任何页面重定向或闪烁。
表单声明:
<form asp-action="GetProducts" id="myForm" data-ajax="true" data-ajax-method="POST" data-ajax-success="myForm_AjaxSuccess">
<input type="submit" value="Generate Products" class="btn btn-default" />
</form>
成功JS函数:
function myForm_AjaxSuccess(data) {
alert(data);
}
操作方法:
// POST: Products/GetProducts
[HttpPost]
//[ValidateAntiForgeryToken]
public IActionResult GetProducts(ProductViewModel vm)
{
IList<DateTime> dateList = new List<DateTime>()
{
new DateTime(2012, 01, 12),
new DateTime(2012, 02, 12,
new DateTime(20162, 03, 12)
};
return Json(dateList);
}
请注意,如果有任何不同,此表单将在 Telerik 剑道对话框窗口中打开。我不确定为什么这会阻止 ajax 在提交表单时工作。
这是我目前这样做的另一种方法,它运行良好,但我想使用 html5 ajax 助手让它工作,如上所述:
$('#myForm').submit(function (e) {
e.preventDefault();
$.ajax({
type: "POST",
url: "/Products/GetProducts",
data: $('#myForm').serialize(),
datatype: "json",
success: function (data) {
alert(data);
}
});
});
@BlakeRivelll:没有什么能阻止AJAX工作(正如您在问题中提到的(,因为应用程序确实进入了控制器内的"GetProducts"方法。
你能在AJAX调用中将"数据类型"指定为"json"吗?您期望的是 JSON 返回类型而不是 html,是吗?
"dataType"是你期望从服务器返回的内容:json,html,text等。 jQuery将使用它来弄清楚如何填充成功函数的参数。
相关文章:
- safari扩展中的重定向url
- 将重定向URL链接添加到JS函数
- 使用phonegap重定向URL
- 在php中htaccess重定向url后,无法加载css和js
- 如何在重定向 URL 的标头中拦截和获取位置
- 如何使用javascript查询重定向url
- 如何使用javascript获取重定向url
- 重定向(URl)提供控制器视图 URI模式
- 带有Authorization标头的JavaScript重定向URL
- 从数组随机重定向URL
- 在重定向URL上使用HubSpot表单数据
- 如何在 Javascript 或 jQuery 中重定向 URL
- 快速发送文件和重定向 URL
- 使用javascript基于登录用户重定向URL链接
- 如何使用javascript完全重定向URL
- JavaScript var 值,重定向 URL 为空
- 如何在WordPress中即时重定向URL
- 在选项卡更改时重定向 URL
- 已更新:从另一个页面重定向 url 传递参数
- 从页面文档文本重定向 URL