当前位置: 代码迷 >> 综合 >> ASP.Net Core Razor 部署AdminLTE框架
  详细解决方案

ASP.Net Core Razor 部署AdminLTE框架

热度:21   发布时间:2024-01-12 11:13:25.0

1、AdminLTE

一个基于 bootstrap 的轻量级后台模板

640?wx_fmt=jpeg

2、AdminLTE 文档

在线中文Demo:http://adminlte.la998.com/

在线中文文档:http://adminlte.la998.com/documentation/index.html

Github:https://github.com/almasaeed2010/AdminLTE/releases

3、AdminLTE 布局

AdminLTE依赖于两个主要框架:JQ和Bootstrap,其他插件可以按需增加。

从文档可以知道,使用AdminLTE主要有四个部分:

  • 包装.wrapper。包裹整个网站的div。

  • 主标题.main-header。包含徽标和导航栏。

  • 边栏.sidebar-wrapper。包含用户面板和侧边栏菜单。

  • 内容.content-wrapper。包含页眉和内容。

在文档中,可以找到下载地址,本文示例是使用最新的版本V2.4.5。

4、Asp.Net Core Razor

640?wx_fmt=jpeg

新建项目Asp.net Core Web应用程序,默认就是Razor Pages,然后添加相应的模块,

如图:本文使用的SDK版本为:dotNet Core 2.1。

640?wx_fmt=jpeg

5、First

在Asp.Net Core项目中,引用AdminLTE,在wwwroot仅添加如图三个文件夹即可:

640?wx_fmt=jpeg

  • bower_components  基本组件。

  • dist  adminlte的主要文件。

  • plugins 其他插件。

6、Second

在_Layout.cshtml文件中添加引入相关文件:

640?wx_fmt=png


在body中,添加js:

640?wx_fmt=png


sidebarskins.js是个人汉化的侧边栏皮肤,框架包里不存在

7、Third

开始使用AdminLTE

640?wx_fmt=jpeg

最后就可以运行项目来预览一下效果了:

640?wx_fmt=gif

移动端的效果:

640?wx_fmt=gif

需要注意的是,点击这个小图标640?wx_fmt=jpeg可以实现左侧边栏收缩展开的功能,当只有侧边栏可以正常收缩展开但Logo无动于衷的时候,

你可能是少了【sidebar-mini】样式和【logo-mini】logo小图的引用

640?wx_fmt=jpeg

640?wx_fmt=jpeg

8、添加一个登陆

登录界面写得比较简约,在Pages文件夹中,添加一个Razor界面

640?wx_fmt=png

在Startup中引入Authentication身份验证:

640?wx_fmt=png


Configure方法内调用

在Login.cshtml.cs中增加一个OnPostAsync的方法:

640?wx_fmt=png


userService和CookieService都是在业务层定义的,gayhub会在文章末尾。

在.Net Core Razor中,xx.cshtml.cs中默认触发的是Get和Post方法,

  • OnGet

  • OnPost

  • OnGetAsync

  • OnPostAsync

如果是需要自定义的,举个栗子,定义为:OnPostLoginAsync,然后在Form表单提交的【按钮】增加asp-page-handler="Login",

详细的推荐大家阅读这篇文章:ASP.NET Core - Razor页面之Handlers处理方法。

接着,然后再Index和需要身份验证的地方都加上Authorize特性即可:

640?wx_fmt=png


9、踩坑

一、Ajax Post请求, 400 Bad Request

   

640?wx_fmt=png


640?wx_fmt=jpeg

折腾许久,原因是Razor被设计为可以自动防止跨站请求伪造(CSRF / XSRF)攻击。你不必编写任何其他代码。Razor页面中自动包含防伪令牌生成和验证。

这里请求失败,是因为POST没有提交AntiForgeryToken。

解决方法:

1.增加"XSRF-TOKEN"标识到框架中

//增加了"XSRF-TOKEN"标识,值为表单自动生成的防伪标记
services.AddAntiforgery(o => o.HeaderName = "XSRF-TOKEN");

2.页面*.cshtml头部加上 

3.ajax引入

  

640?wx_fmt=png


然后既可以正常访问Handler

640?wx_fmt=jpeg

二、DataTables参数实例加说明

640?wx_fmt=png

640?wx_fmt=png


10、Banana

Demo中会使用到这两个个人封装的组件:

640?wx_fmt=jpeg

Banana.Uow是基于Dapper封装的工作单元和仓储;

Banana.Utility是常用的工具类,有Redis,加解密,拼音等等;

原文地址:https://www.cnblogs.com/zyg316/p/10953831.html

 
  

.NET社区新闻,深度好文,欢迎访问公众号文章汇总 http://www.csharpkit.com 
640?wx_fmt=jpeg

  相关解决方案