【问题标题】:Ajax.BeginForm in VS 2015 ASP.NET vNext missing?VS 2015 ASP.NET vNext 中的 Ajax.BeginForm 缺失?
【发布时间】:2016-06-29 21:55:35
【问题描述】:

我在早期版本的 ASP.NET MVC for Razor Views 中了解了 @Html.BeginForm 和 @Ajax.BeginForm。然后我打开 VS 2015 尝试使用 ASP.NET vNext 两种形式,但我找不到 Ajax 对象。我错过了什么吗?我是否必须包含一些额外的 Nuget 包?有没有使用 Ajax.BeginForm 的新方法?它还没有被添加到 VS 2015 (MVC 6) 中吗?它被删除了吗?还是什么?

注意:我对纯 HTML/JavaScript 替代品不感兴趣。

【问题讨论】:

  • 它还没有实现,我不完全确定它是否会实现。 “AJAX 助手”的功能相当有限,大多数开发人员似乎直接使用了涉及 Angular、Knockout 和类似 JavaScript/AJAX 库的解决方案。
  • 感谢您的评论,有道理!让我们等到最终版本。我是网络编程新手,但某种 Ajax 是必须的。
  • TagHelper 可以替代“AJAX 助手”吗?您可以在
    标记中指定“控制器”和“动作”属性。它将自动呈现正确的“动作”属性。不知道它是否也适用于 AJAX 操作。

标签: c# asp.net asp.net-mvc asp.net-core-mvc


【解决方案1】:

jquery ajax unobtrusive 是开源的 (https://github.com/aspnet/jquery-ajax-unobtrusive),可以通过 bower 拉取。

导入它后,您可以使用它的数据属性来实现与 Ajax.BeginForm 相同的行为。

+------------------------+-------------------------------+ | AjaxOptions | HTML attribute | +------------------------+-------------------------------+ | Confirm | data-ajax-confirm | | HttpMethod | data-ajax-method | | InsertionMode | data-ajax-mode | | LoadingElementDuration | data-ajax-loading-duration | | LoadingElementId | data-ajax-loading | | OnBegin | data-ajax-begin | | OnComplete | data-ajax-complete | | OnFailure | data-ajax-failure | | OnSuccess | data-ajax-success | | UpdateTargetId | data-ajax-update | | Url | data-ajax-url | +------------------------+-------------------------------+

【讨论】:

    【解决方案2】:

    MVC 6 使用 Tag Helper 作为 HTML Helper 的替代方案。 This post Dave Paquette 在他的博客上解释了表单标签助手 在this post 中,小伙子创建了自己的 Ajax 表单标签助手

    我认为您不能只将@using System.Web.Mvc.Ajax 添加到您的_ViewImports.cshtml 中。 jquery.unobtrusive-ajax.js 库使用 jQuery,因此使用上面的链接创建自己的解决方案可能会更好 - 这也将使您对 Promise 有更多的控制和访问权限

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-07-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多