刚刚开始使用.net core 2.0 Razor进行web开发,上来就遇到一点小问题,在前端页面如何调用ajax,网上的文章很多,但大多是传统的MVC架构,即通过ajax调用controller,虽可以使用但总不理想。Razor2.0使用handler处理页面请求的结构,并可以通过asp-page-hanlder来调用不同的处理方法,经过2天测试,终于达到预期效果,为了怕以后忘记记录下全部过程。整个项目只有一个测试页面,两个按钮分别对应get和post方法:
环境:WIN10pro+VS2107pro
1. 新建Asp.net Core Web应用程序Core20RazorAjax

2. 在Pages文件夹新建一个Razor页面:RazorAjax
3. 系统自动生成2个文件,前端页面以cshtml为扩展名,后端页面以.cshtml.cs为扩展名,后端页面里自动生成一个默认的OnGet方法,现在到页面里添加一个按钮,调用后端的方法来显示一个简单信息
在后台RazorAjax.cshtml.cs页面里添加方法
4. 运行,并访问 http://localhost:xxxxx/RazorAjax 点击按钮就可以调出后台字符串
5. 下面开始测试post方法,由于post方法会遇到跨域保护cross-site-request-forgery(CSRF/XSRF),所以要在配置里添加设置
首先在Startup.cs里添加配置
修改页面文件,增加post测试内容
修改后台页面,添加post处理
6. 测试运行
7. 附注:如果对url写法不舒服/xxx/?handler=xxx,可以在页面开始部分添加@page "{handler?}",则url可以写成/xxx/handler的方式
8. 全部代码