ASP.Net Core中使用jquery-ajax-unobtrusive替换Ajax.BeginForm
在大潮流下,大家都在研究MVVM框架,但是做面向搜索引擎的外网项目还是得用服务器渲染。
在.Net中肯定就是用Razor模板引擎了。
.Net Core断臂式重构后,很多在老得Mvc中使用得好好的一些功能,突然就不见了。
在这里鄙视一下微软,说好的无缝切换呢。。我看这个缝还是有点大。
ASP.Net Core中,使用TagHelper替换HtmlHelper。使得写出的Razor代码可读性更高,同时VS的提示能力更强了。
但是也丢掉了很多以前觉得很好用的东西,比如今天要说的Ajax.BeginForm,在ASP.Net Core中突然就不见了,搜索GitHub的Issue,发现官方不打算支持Ajax.BeginForm了。后续也无开发计划,那个issue直接被关闭了。
虽然没了Ajax.BeginForm。但是在墙外搜索到另一种TagHelper的实现。
直接在form上使用data-*去做异步表单,使用方式和Ajax.BeginForm半斤八两
https://github.com/aspnet/jquery-ajax-unobtrusive
去GitHub下载这个项目,然后点击build.cmd,脚本自动构建一个dilst,里面就是js文件

然后引用到项目中。就可以愉快的编写异步表单辣
<form asp-controller="Home" asp-action="Test" data-ajax="true" data-ajax-method="post" data-ajax-begin="begin" data-ajax-success="success">
    <label asp-for="UserName"></label>:
    <input asp-for="UserName" />
    <span asp-validation-for="UserName"></span>
    <br />
    <label asp-for="PassWord"></label>:
    <input asp-for="PassWord" />
    <span asp-validation-for="PassWord"></span>
    <button type="submit">Ok</button>
</form
  <script>
        var begin = function () {
            console.log("begin");
        }
        var success = function (context) {
            console.log(context)
        }
    </script>
这里提供了N多个data-ajax-*的taghelper,
| 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 | 
好了,就酱紫了
ASP.Net Core中使用jquery-ajax-unobtrusive替换Ajax.BeginForm的更多相关文章
- ASP.NET Core中的jQuery Unobtrusive Ajax帮助器
		
最近在ASP.NET Core下写文章管理系统时,准备在分页显示文章内容时,使用Ajax.网上找了篇帖文,简单翻一下,仅供自己查阅. 原链接:https://dotnetthoughts.net/jq ...
 - ASP.NET Core 中的Ajax全局Antiforgery Token配置
		
前言 本文基于官方文档 <在 ASP.NET Core 防止跨站点请求伪造 (XSRF/CSRF) 攻击>扩展另一种全局配置Antiforgery方法,适用于使用ASP.NET Core ...
 - 如何在ASP.NET Core中实现CORS跨域
		
注:下载本文的完整代码示例请访问 > How to enable CORS(Cross-origin resource sharing) in ASP.NET Core 如何在ASP.NET C ...
 - Asp.Net Core中Json序列化处理整理
		
一.Asp.Net Core中的Json序列化处理使用的是Newtonsoft.Json,更多参考:C# Newtonsoft.Json JsonSerializerSettings配置序列化操作,C ...
 - 项目开发中的一些注意事项以及技巧总结  基于Repository模式设计项目架构—你可以参考的项目架构设计  Asp.Net Core中使用RSA加密   EF Core中的多对多映射如何实现?  asp.net core下的如何给网站做安全设置  获取服务端https证书  Js异常捕获
		
项目开发中的一些注意事项以及技巧总结 1.jquery采用ajax向后端请求时,MVC框架并不能返回View的数据,也就是一般我们使用View().PartialView()等,只能返回json以 ...
 - Asp.Net Core中配置使用Kindeditor富文本编辑器实现图片上传和截图上传及文件管理和上传(开源代码.net core3.0)
		
KindEditor使用JavaScript编写,可以无缝的于Java..NET.PHP.ASP等程序接合. KindEditor非常适合在CMS.商城.论坛.博客.Wiki.电子邮件等互联网应用上使 ...
 - 第十四节:Asp.Net Core 中的跨域解决方案(Cors、jsonp改造、chrome配置)
		
一. 整体说明 1. 说在前面的话 早在前面的章节中,就详细介绍了.Net FrameWork版本下MVC和WebApi的跨域解决方案,详见:https://www.cnblogs.com/yaope ...
 - ASP.NET Core 中的脚本标记帮助程序
		
官网地址:https://docs.microsoft.com/zh-cn/aspnet/core/mvc/views/tag-helpers/built-in/script-tag-helper?v ...
 - 在ASP.NET Core中实现一个Token base的身份认证
		
注:本文提到的代码示例下载地址> How to achieve a bearer token authentication and authorization in ASP.NET Core 在 ...
 
随机推荐
- angular基础巩固
			
angular中的模块化 //定义模块 []为依赖的模块 moduleName可以使用[]模块中定义的controller filter .. var app=angular.module('modu ...
 - 基于kali linux无线网络渗透测试
			
1.无线网络渗透测试目前主要有三种方式,分别是暴力破解PIN码,跑握手包,搭建伪热点三种方式,当然还存在其他的方式. 1.1暴力破解 路由器的PIN码由八位0-9的数字组成,PIN码由散步风组成,前四 ...
 - cf1133 bcdef
			
b所有数模k,记录出现次数即可 #include<bits/stdc++.h> using namespace std; int main(){ ]; ]={}; cin>>n ...
 - cf861D 字典树+时间戳
			
好久没碰字典树之类的题了,搞起来有点生疏 /* 把所有母串的后缀加入字典树中 然后再扫一次所有母串的后缀,把后缀放到字典树中查询,找到第一个访问次数为1的结点返回即可 num在计数时,同一个母串的子串 ...
 - 51nod1158 最大子矩形 单调栈应用
			
#include<iostream> #include<cstring> #include<cstdio> using namespace std; ][6],m, ...
 - noip 2018.10.14 模拟赛 砍树
			
数学问题... 根据题意,有: 移项,整理,得: 记 于是 那么 可以看到,最多只会有2*个取值(显而易见) 于是对应的,可能产生效果的d也只会有个,于是我们把他们找出来,扔进一个数组里然后排序,去重 ...
 - mybatis的插件分析
			
mybatis插件回在解析配置是通过pluginAll方法将插件添加到插件链中,然后会在sqlSessionfactory.openSession()方法中将插件链绑到executor上,在执行sql ...
 - Appium 九宫格 手势解锁
			
分析九宫格定位 整个九宫格是一个 view self.driver.find_element_by_id("com.elc:id/gesturepwd_create_lockview&q ...
 - excel生成数据
			
Sub function1()Dim i As LongFor i = 1 To 1000000Cells(i, 1) = "A" & iCells(i, 2) = &qu ...
 - markdown 相关零碎知识
			
1.尖括号<>在markdown会被当做html符号,解决办法:用转义字符,如:<测试> 可以写作<:测试>