网站的按钮怎么做,沈阳网站制作思路,通用网站模板,如何优化seo技巧Blazor是什么Blazor 是微软在 .NET 里推出的一个 WEB 客户端 UI 交互的框架#xff0c;使用 Blazor 你可以代替 JavaScript 来实现自己的页面交互逻辑#xff0c;可以很大程度上进行 C# 代码的复用#xff0c;Blazor 对于 .NET 开发人员来说是一个不错的选择。需求背景其实我… Blazor是什么Blazor 是微软在 .NET 里推出的一个 WEB 客户端 UI 交互的框架使用 Blazor 你可以代替 JavaScript 来实现自己的页面交互逻辑可以很大程度上进行 C# 代码的复用Blazor 对于 .NET 开发人员来说是一个不错的选择。需求背景其实我对着这东西是挺反感的但是没办法这个是之前别人遗留的项目那个哥们干了2个月就走人了。我那时候正好入职也就交接给我了。我当时的态度是代码能正常编译运行就好了。其他的业务对不对就交给测试人员去验证。之前只是实现了业务功能但是连个权限验证也没有现在要上线了总不能裸奔吧所以就需要加个权限验证。代码实现1、在公共部分 App.razor 加个输入用户名、验证码Form Model_vm.Data Loading_vm.Loading LabelColSpan8 WrapperColSpan16FormItemInput bind-Valuecontext.username //FormItemFormItemInput bind-Valuecontext.userpwd //FormItemFormItem WrapperColSpan24 Styletext-align:centerButton HtmlTypebutton OnClick( async () await login())登录/Button/FormItem
/Form复制代码2、实现登录事件OnClick( async () await login())private loginVm _vm new loginVm(); public async Task login(){var result _vm.Data; if(result.usernamexxxx result.userpwdxxxxxxx){await JsRuntime.InvokeAsyncstring(InitialCarousel); Logined true; }else{ResetForm(); Logined false; await JsRuntime.InvokeAsyncstring(alerterror); }}private void ResetForm(){_vm.Data.username ; _vm.Data.userpwd ; }public bool Logined; protected override async Task OnInitializedAsync(){await base.OnInitializedAsync(); try{var TValue await JsRuntime.InvokeAsyncstring(returnInitialCarousel); if(!string.IsNullOrWhiteSpace(TValue)){Logined true; }else{Logined false; } }catch (Exception ex){Logined false; }}
}复制代码3、页面做个判断有权限正常显示没权限显示登录界面Router AppAssemblytypeof(Program).AssemblyFound ContextrouteDataif(Logined){RouteView RouteDatarouteData DefaultLayouttypeof(BasicLayout) /}else{LayoutView Layouttypeof(BasicLayout)
Form Model_vm.Data Loading_vm.Loading LabelColSpan8 WrapperColSpan16FormItemInput bind-Valuecontext.username //FormItemFormItemInput bind-Valuecontext.userpwd //FormItemFormItem WrapperColSpan24 Styletext-align:centerButton HtmlTypebutton OnClick( async () await login())怬/Button/FormItem
/Form/LayoutView} /FoundNotFoundLayoutView Layouttypeof(BasicLayout)pSorry, theres nothing at this address./p/LayoutView/NotFound
/RouterAntContainer /复制代码4、这里我是用cookies做判断登录的时候写入cookies,直接调用js方法实现scriptfunction alerterror() {console.log(333); alert(账号或密码错误); }function InitialCarousel() {console.log(222); document.cookie usernameJohn Doe; path/; }function returnInitialCarousel() {console.log(111); var cname username; var name cname ; var ca document.cookie.split(;); for (var i 0; i ca.length; i) { var c ca[i].trim(); if (c.indexOf(name) 0) return c.substring(name.length, c.length); }return ; }/script复制代码效果