ASP。网络核心剃须刀中处理Ajax请求的案例

  介绍

这篇文章主要介绍了ASP。网络核心剃须刀中处理Ajax请求的案例,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获、下面让小编带着大家一起了解一下。

在ASP。净核心剃须刀(以下简称剃须刀)刚出来的时候,看了一下官方的文档,一直没怎么用过。

今天闲来无事,准备用Rozor做个项目熟练下,结果写第一个页面就卡住了. .折腾半天才搞的好,下面给大家分享下解决方案。先来给大家简单介绍下剃刀剃须刀是ASP页面。网络核心的一项新功能,可以使编页面的编程方案更简单,更高效.Razor页面使用处理程序方法来处理传入的HTTP请求(GET/POST/PUT/删除)。这些类似于ASP。净MVC或WEB API的行动方法.Razor页面遵循特定的命名约定,处理方法也是如此。他们也遵循特定的命名约定,并与“”前缀:和HTTP动词一样OnGet (), OnPost()等处理方法也有异步版本:OnGetAsync (), OnPostAsync()等。介绍完剃须刀,直接上图

 ASP。净核心剃须刀中处理Ajax请求的案例

功能很简单,就是个登录。用户点击“登录按钮“后利用Jquery获取文本框的值,异步提交到服务器。很简单的功能,相信大家都写过很多次了。啪啪啪几下代码就撸出来了。

# #前台代码   & lt; form 方法=皃ost"祝辞   ,,,,,& lt; div 类=發ogin-ic"比;   ,,,,,,,& lt; i> & lt;/i>   ,,,,,,,& lt; input  asp-for=癓ogin.UserName",/比;   ,,,,,,,& lt; div 类=癱lear"祝辞,& lt;/div>   ,,,,,& lt;/div>   ,,,,,& lt; div 类=發ogin-ic"比;   ,,,,,,,& lt;小姐:类=癷con"祝辞& lt;/i>   ,,,,,,,& lt; input  asp-for=癓ogin.PassWord",/比;   ,,,,,,,& lt; div 类=癱lear"祝辞,& lt;/div>   ,,,,,& lt;/div>   ,,,,,& lt; div>   ,,,,,,,& lt; ul>   ,,,,,,,,,& lt; li>   ,,,,,,,,,,,& lt; input 类型=癱heckbox" https://www.yisu.com/zixun/, value=" ">   <标签=" brand1 ">记得我>             OnPostLoginInAsync ()   {//如果(ModelState.IsValid)//{/用户/var=等待_userService.LoginAsync(登录);//如果(用户!=null)//{//返回新JsonResult (ApiResult.ToSucess(“登录成功! "));//}//返回新JsonResult (ApiResult.ToFail(“帐号密码错误! "));//}   返回新JsonResult (ApiResult.ToFail(“参数填写错误,请检查! "));   }   }

首先解释下/user/登录? hanler=LoginIn这个Url是什么意思,用户是我页面下的一个目录,登录是一个页面,LoginIn是页面里面对应的一个方法。这个Url的就是把这个请求交给OnPostLoginInAsync()方法处理。至于为什么是LoginIn而不是OnPostLoginInAsync,在文章开头也提到过,这是Rozar的语法限定,不清楚的朋友可以去看下微软的官方文档,写的肯定比我好…这个代码乍一看,思路很清晰,项目跑起来,走一波看看。

 ASP。网络核心剃须刀中处理Ajax请求的案例”>,</p> <p>是的,你没看错,响应码400。各种姿势试了半天,就是400,你现在一定想知道,上面的代码有什么问题。那么,上面的代码没有错。原因是,剃刀被设计为可以自动防止跨站请求伪造(CSRF/XSRF)攻击。你不必编写任何其他代码.Razor页面中自动包含防伪令牌生成和验证。这里请求失败,是因为文章没有提交AntiForgeryToken。有两种方法可以添加AntiForgeryToken。</p> <p>在ASP。网络核心MVC 2.0中,FormTagHelper为HTML表单元素注入反伪造令牌,例如,剃刀文件中的以下标记将自动生成防伪标记:</p> <pre类= & lt; form 方法=皃ost"比;   & lt; !——, form  markup ——比;   & lt;/form>

ASP。网络核心剃须刀中处理Ajax请求的案例