【发布时间】:2026-01-18 20:35:01
【问题描述】:
我试图在我的 aspnet core 2.0 项目中使用“Ajax.BeginForm”实现一个异步调用,但后来我根据github 和* 上的这些线程发现,不支持此类在 aspnet 核心中,也不是 MVC 6。
除了旧的方法之外,还有其他方法可以在 aspnet 核心中使用 ajax 异步调用,使用 $.ajax 函数吗?我的问题是,使用AjaxHelper 类,我可以在视图文件中使用剃刀完成所有操作,并将所有内容组织在一个地方。
如果我必须在 js 文件中(或在 标签中)进行 ajax 调用,我为什么要使用 razor 语言来创建一个循环,并打印一个列表或其他任何东西?我可以直接处理数据,使用 js,并保留所有内容!
你们现在是如何解决这个问题的?感谢您的帮助。
【问题讨论】:
-
如果需要,没有什么能阻止您将 ajax(和一般的 JS 脚本)放入视图文件中。 AFAIK Ajax.BeginForm 只是导致表单通过 ajax提交,而不是通过 ajax 填充。所以你仍然可以使用 Razor 来构建你的视图,然后只需编写你自己的 ajax 逻辑来提交表单。
-
Ajax.BeginForm辅助方法向表单添加了一些 html5 数据属性,jquery.unobtrusive-ajax.min.js中的代码将使用这些属性值并阻止正常的表单提交并改为执行 ajax 发布。你可以做同样的事情。您所需要的只是将数据属性添加到您的表单标签中。您还可以编写自己的submit事件处理程序并自己调用 ajax,这将为您提供 100% 的控制权。 -
@ADyson,这个想法不适用于 jquery 或 js 直接。在 js 文件中,或者在视图中,在
-
@Shyju 和 ADyson ,有一些示例或教程,说明如何在没有 ajaxHelper 类的情况下使用 html5 数据属性?大家觉得值得努力吗?还是我应该以传统方式工作?我刚开始学习aspnet core的项目,所以我还在决定怎么做。
-
我正在研究同样的事情。试试看这里:dotnetthoughts.net/… 这几乎是 Core 中做旧 url ajax 助手 (ajax.BeginForm) 在 MVC 4 和 5 中所做的新方法。
标签: ajax razor asp.net-core-2.0 ajaxhelper