Blazor 组件库 BootstrapBlazor中 Ajax 组件的使用
组件解决的问题
由于Blazor在与服务器连接时使用了Websocket,仅在第一次连接时会走原MVC的连接逻辑。所以,我们无法在这个过程中完成例如身份认证、cookie处理等操作。
此组件即为解决此类问题准备的。
组件用法
这里给出一部分代码:
在页面上添加
<Ajax></Ajax>的组件引用@inject AjaxService AjaxService注入AjaxService
var option = new AjaxOption
{
Url = "/api/Login",
Data = new User() { UserName = "admin", Password = "123456" }
};
定义一个AjaxOption,其中Url即为要访问的WebApi地址,Data为RequestData。默认method为POST,也可以自己定义。
var result = await AjaxService.GetMessage(ajaxOption);使用AjaxService.GetMessage来调用Ajax方法访问指定Url并获取返回。
在官网例子中,WebApi的定义如下:
[Route("api/[controller]")]
[AllowAnonymous]
[ApiController]
public class LoginController : ControllerBase
{
/// <summary>
///
/// </summary>
/// <param name="user"></param>
/// <returns></returns>
[HttpPost]
public IActionResult Post(User user)
{
IActionResult? response;
if (user.UserName == "admin" && user.Password == "123456")
{
response = new JsonResult(new { Code = 200, Message = "登录成功" });
}
else
{
response = new JsonResult(new { Code = 500, Message = "用户名或密码错误" });
}
return response;
}
}
这里校验如果用户名为admin并且密码为123456时返回登录成功,否则返回用户名或密码错误。
然后我们就可以判断返回的result来判断是否登录成功。
if (result == null)
{
ResultMessage = "响应失败";
}
else
{
ResultMessage = result;
var doc = JsonDocument.Parse(result);
if (200 == doc.RootElement.GetProperty("code").GetInt32())
{
await SwalService.Show(new SwalOption() { Content = "登录成功!", Category = SwalCategory.Success });
}
else
{
await SwalService.Show(new SwalOption() { Content = $"登录失败:{doc.RootElement.GetProperty("message").GetString()}", Category = SwalCategory.Error });
}
}
建议使用位置
Ajax组件是比较简单的jquery的Ajax方法的封装,封装的内容比较少,只支持Json作为参数,返回值也会转换成Json,所以仅建议用于登录等内部前后端交流,并且需要带cookie或者必须由浏览器发起的特殊逻辑中。
复杂的访问,建议使用c#的HttpClient类,不建议使用此组件进行处理。
Blazor 组件库 BootstrapBlazor中 Ajax 组件的使用的更多相关文章
- Blazor 组件库 BootstrapBlazor 中Editor组件介绍
组件介绍 Editor组件是对Summernote 组件的二次封装. 组件分为div模式和editor模式. 默认状态下editor模式的组件样子如下: 其代码如下: <Editor @bind ...
- Antd组件库,利用Menu组件模拟一个简单Tree组件
当前工作中,前端的主要技术栈用是vue. 那React怎么办呢?总不至于把他扔在墙角吧! 只能在一些很小的项目上,也只有自己一个前端的时候,悄悄的上React. 当然,React项目UI组件还是最喜欢 ...
- Vue3 企业级优雅实战 - 组件库框架 - 3 搭建组件库开发环境
前文已经初始化了 workspace-root,从本文开始就需要依次搭建组件库.example.文档.cli.本文内容是搭建 组件库的开发环境. 1 packages 目录 前面在项目根目录下创建了 ...
- 【Angular】关于angular引用第三方组件库无法改变其组件样式 :host ::ng-deep
[Angular]关于angular引用第三方组件库无法改变其组件样式 :host ::ng-deep css修改:无效 .ant-input-affix-wrapper .ant-input:not ...
- 基于vue2.0前端组件库element中 el-form表单 自定义验证填坑
eleme写的基于vue2.0的前端组件库: http://element.eleme.io 我在平时使用过程中,遇到的问题. 自定义表单验证出坑: 1: validate/resetFields 未 ...
- BootstrapBlazor 组件库使用体验---Table篇
原文地址:https://www.cnblogs.com/ysmc/p/13323242.html Blazor 是一个使用 .NET 生成交互式客户端 Web UI 的框架: 使用 C# 代替 Ja ...
- Blazor组件提交全记录: FullScreen 全屏按钮/全屏服务 (BootstrapBlazor - Bootstrap 风格的 Blazor UI 组件库)
Blazor 简介 Blazor 是一个使用 .NET 生成的交互式客户端 Web UI 的框架.和前端同学所熟知的 Vue.React.Angular 有巨大差异. 其最大的特色是使用 C# 代码( ...
- BootstrapBlazor 组件库介绍
项目介绍 演示系统地址:https://www.blazor.zone Blazor 是一个使用 .NET 生成交互式客户端 Web UI 的框架: 使用 C# 代替 JavaScript 来创建丰富 ...
- Ant Design Blazor 组件库的路由复用多标签页介绍
最近,在 Ant Design Blazor 组件库中实现多标签页组件的呼声日益高涨.于是,我利用周末时间,结合 Blazor 内置路由组件实现了基于 Tabs 组件的 ReuseTabs 组件. 前 ...
随机推荐
- Idea进行spring-boot-devtools热部署以及不生效的问题解决
实现的方式有两种: spring-boot-devtools spring Loaded 我在此只介绍spring-boot-devtools的使用方法: 1.在pom中直接引入依赖 <depe ...
- 前端知识之BOM和DOM
前端基础之BOM和DOM windw对象 指浏览器窗口,所有的浏览器都支持window对象 常用的window方法 window.innerHeight 浏览器窗口的内部高度 window.inner ...
- WinCE知识介绍
学习WinCE基本开发的步骤: 1.了解WinCE发展史: 2.WinCE开发环境搭建:[软件工具+插件] 3.简单案例: 参考:http://blog.csdn.net/educast/articl ...
- 洛谷 P1020 [NOIP1999 普及组] 导弹拦截
Coidng #include <iostream> #include <algorithm> #include <cstring> #include <ve ...
- GitHub还能这样玩,这次我真是开了眼了
哈喽,大家好,我是指北君. 我会一直在"开源指北"公众号给大家分享各种有趣. 实用与最前沿的开源项目,还有各种互联网干货, 今天主要给大家分享一下GitHub的一些使用技巧,帮助你 ...
- Spring中毒太深,离开了Spring,我居然连最基本的接口都不会写了¯\_(ツ)_/¯
前言 众所周知,Java必学的框架其中就是SSM,Spring已经融入了每个开发人员的生活,成为了不可或缺的一份子. 随着 Spring 的崛起以及其功能的完善,现在可能绝大部分项目的开发都是使用 S ...
- STM32试题及答案
一.选择题 1.Cortex-M处理器采用的架构是( D ) (A)v4T (B)v5TE (C)v6 (D)v ...
- freemarker与vue使用图片路径获取问题,可双单引号一起使用则可
<el-table :data="leftPage.datas" style="width: 100%" @selection-change=" ...
- C语言 | 栈的应用 | 非递归栈实现快排
/* 非递归栈实现快排 */ #include <stdio.h> #include <math.h>> #include <malloc.h> #inclu ...
- Numpy和原生Python用于数组计算的性能对比