Razor 是一种允许您向网页中嵌入基于服务器的代码(Visual Basic 和 C#)的标记语法。

当网页被写入浏览器时,基于服务器的代码能够创建动态内容。

在网页加载时,服务器在向浏览器返回页面之前,会执行页面内的基于服务器代码。

由于是在服务器上运行,这种代码能执行复杂的任务,比如访问数据库。

razor pages 的渲染是由服务器完成的,后端Razor直接渲染模版,这就会导致服务器端的压力,

所以在遇到数据量过大的地方,还是由前端来渲染比较好,这就牵涉到了如何利用ajax调用 razor pages的后端代码了,

基于我的搜索结果,方式有两种:

方式一

参考:https://www.jb51.net/article/133437.htm

参考:http://www.cnblogs.com/mebius4789/p/8685755.html

这个方式我个人认为比麻烦,大家可以自行查看链接

方式二

参考:https://www.learnrazorpages.com/security/request-verification#ajax-post-requests

这个方式也是我接受的方式:

操作步骤如下:

1、Startup文件的ConfigureServices方法,添加下段:

services.AddMvc().AddRazorPagesOptions(o =>
{
o.Conventions.ConfigureFilter(new IgnoreAntiforgeryTokenAttribute());
});

整体如下:

 services.AddMvc()
.SetCompatibilityVersion(CompatibilityVersion.Version_2_1)
.AddRazorPagesOptions(o =>
{
o.Conventions.ConfigureFilter(new IgnoreAntiforgeryTokenAttribute());
});

2、Ajax请求

var postSubmit = $.ajax({
type: "POST",
url: "/yourformhandler",
data: JSON.stringify({ ... }),
contentType: "application/json"
}).done(function(response){
//...
});

举个栗子:

后端代码:

public class Index1Model : PageModel
{
public void OnGet()
{ } //url:"Index"
public IActionResult OnPost([FromBody]MyClass my)
{
return new JsonResult("Hello Response Back");
} //url: "Index?handler=Send"
public ActionResult OnPostSend([FromBody] MyClass my)
{
return new JsonResult(my);
} public class MyClass
{
public int speakerId { get; set; }
public bool currentYear { get; set; }
}
}

前端Ajax调用:

<h1>Index1</h1>
<button id="clickme">click me</button> @section Scripts
{
<script>
$('#clickme').click(function (e) {
var _data = {
"speakerId": ,
"currentYear": true
}; var postSubmit = $.ajax({
type: "POST",
url: "Index1?handler=Send",
data: JSON.stringify(_data),
contentType: "application/json"
}).done(function (response) {
alert(response);
});
})
</script>
}

asp.net core 的 razor pages 如何使用ajax调用后台方法的更多相关文章

  1. asp.net如何在前台利用jquery Ajax调用后台方法

    一 :最近因为帮同事开发项目使用到了asp.net,而我又想实现Ajax异步请求....从网上查询了一下资料之后,原来在asp.net中利用Ajax调用后台方法同样很简单,为了便于自己以后查看,特将此 ...

  2. Asp.net中JQuery、ajax调用后台方法总结

    通过上一篇文章实例的实现,整个过程当中学习到很多知识点,了解了Jquery.Ajax在asp.net中的运用,加以总结,其实原理都是一样的,理解了一种,其他的注意很少的区别就可以了.灵活运用: 1.有 ...

  3. [译]ASP.NET Core揭秘 - Razor Pages

    原文 什么是Razor Pages? Razor pages是ASP.NET Core 2.0的新特性,它被设计用来更快的开发页面,比传统的MVC模式更便捷. 创建项目 为了使用Razor Pages ...

  4. Asp.Net Core SignalR 用泛型Hub优雅的调用前端方法及传参

    继续学习 最近一直在使用Asp.Net Core SignalR(下面成SignalR Core)为小程序提供websocket支持,前端时间也发了一个学习笔记,在使用过程中稍微看了下它的源码,不得不 ...

  5. asp.net core 通过ajax调用后台方法(非api)

    1.    在Startup.cs文件中添加:        services.AddMvc();            services.AddAntiforgery(o => o.Heade ...

  6. asp.net ajax 调用后台方法

    js代码 <form id="form1" runat="server"> <script language=javascript type= ...

  7. <asp:TextBox><asp:LinkButton><input button>调用后台方法后刷新页面

    <asp:TextBox><asp:LinkButton>服务器控件,执行后台方法,会回调加载js,相当于页面重新加载,刷新页面 <input button>不能直 ...

  8. ASP.NET Core使用Razor页面

    ASP.NET Core使用Razor页面 Razor是ASP.NET的页面引擎,在ASP.NET MVC 3以后被广泛使用,我在之前的博客中有所介绍,需要更多了解的朋友请移步[Razor语法] 在A ...

  9. 独立使用Asp.net Core 的razor模板 (一):Razor引擎的一些细节

    由于最近需要写一些界面稍微好看点的Winform程序,如果用原生控件,,想要达到好看的程度,需要花费比较大的功夫,因为之前使用过CefSharp,因此发觉如果是使用CEF+Html的方式,界面可以相对 ...

随机推荐

  1. 全面系统讲解CSS 工作应用+面试一步搞定

  2. SpringCloud---网关概念、Zuul项目搭建(六)

    SpringCloud---网关概念.Zuul项目搭建(六) 一.网关概念 1.什么是路由网关 网关是系统的唯一对外的入口,介于客户端和服务器端之间的中间层,处理非业务功能 提供路由请求.鉴权.监控. ...

  3. 如何在Linux中轻松删除源安装的软件包?

    第1步:安装Stow 在这个例子中,我们使用的是CentOS,因此我们需要扩展的EPEL库.您可以使用以下命令安装它们:yum install epel-release然后,下面这段命令:yum in ...

  4. vscode常用快捷键

    一.vs code 的常用快捷键列表 1.注释: a) 单行注释:[ctrl+k,ctrl+c] 或 ctrl+/ b) 取消单行注释:[ctrl+k,ctrl+u] (按下ctrl不放,再按k + ...

  5. Python爬虫beautifulsoup4常用的解析方法总结

    摘要 如何用beautifulsoup4解析各种情况的网页 beautifulsoup4的使用 关于beautifulsoup4,官网已经讲的很详细了,我这里就把一些常用的解析方法做个总结,方便查阅. ...

  6. BZOJ2300[HAOI2011]防线修建——非旋转treap+凸包(平衡树动态维护凸包)

    题目描述 近来A国和B国的矛盾激化,为了预防不测,A国准备修建一条长长的防线,当然修建防线的话,肯定要把需要保护的城市修在防线内部了.可是A国上层现在还犹豫不决,到底该把哪些城市作为保护对象呢?又由于 ...

  7. html-webpack-plugin不输出script标签的方法

    那就是修改源码 约550行: if (!this.options.disableScript) { if (this.options.inject === 'head') { head = head. ...

  8. 通过10046 event来获取真实的执行计划

    获取SQL执行计划的方式有很多,但是某些时候获取的SQL执行计划并不是准确的,只有在SQL真实执行之后获取到的SQL PLAN才是真实准确的,其他方式(如,explain plan)获取到的执行计划都 ...

  9. [HNOI2012]集合选数(状压DP+构造)

    题目要求若出现x,则不能出现2x,3x 所以我们考虑构造一个矩阵 \(1\ 2\ 4 \ 8--\) \(3\ 6\ 12\ 24--\) \(9\ 18\ 36--\) \(--\) 不难发现,对于 ...

  10. SQLServer安装步骤(2012版为例)

    提示:SQLServer安装较为耗时,请确保时间充足. 图文如果无法正常显示,请移步 SQLServer安装步骤 第一步:下载 下载地址:https://www.microsoft.com/zh-cn ...