当前位置: 首页 > news >正文

怎么在微信上做网站乔智云智能建站

怎么在微信上做网站,乔智云智能建站,衡水做网站设计,代理网课前言 上一篇文章《ASP.NET Core 奇技淫巧#xff08;1#xff09;#xff1a;中间件实现服务端静态化缓存》中介绍了中间件的使用方法、以及使用中间件实现服务端静态化缓存的功能。本系列文章取名“奇技淫巧”不是没道理的#xff0c;因为这写技巧都是我最近在做的公司实际… 前言 上一篇文章《ASP.NET Core 奇技淫巧1中间件实现服务端静态化缓存》中介绍了中间件的使用方法、以及使用中间件实现服务端静态化缓存的功能。本系列文章取名“奇技淫巧”不是没道理的因为这写技巧都是我最近在做的公司实际项目中的一些奇怪的需求之后总结而来的…… 要解决的问题 好了本篇说说如何在中间件中渲染Razor视图。之所以会有这个技巧是因为我们有个需求 需要在所有返回404状态的路由都输出一个特定视图。 比如当有id1的文章而没有id2的文章时那么/url/1.html展示文章详情页/url/2.html展示404视图。 所以要实现这个需求只有两种办法 当文章查找不到时直接执行return View(404)返回404视图。 在中间件中执行完MVC的处理之后检查返回状态如果是错误状态就直接渲染视图并输出。 由于CMS系统中不止一处需要返回404状态所以因为用代码整洁作为懒惰的借口决定尝试第二个方法。 实现 实现方式很简单就是在Configure中注入ICompositeViewEngine实例构造视图上下文再渲染视图为字符串最后输出。其它的分析就在代码注释中说明吧 直接上代码 public void Configure(IApplicationBuilder app, IHostingEnvironment env, ICompositeViewEngine engine){    app.Use(async (context, next)    {        //因为只是在请求最后处理所以这里直接就运行下一个中间件        await next();        //返回后检查是否出现错误的状态        if (context.Response.StatusCode 400)        {            context.Response.StatusCode (int)HttpStatusCode.NotFound;            //ContentType设置为text/html使浏览器以正常页面的格式显示            context.Response.ContentType text/html;            //指向特定的视图            var viewResult engine.GetView(~/, ~/Views/Default/Home/Error.cshtml, true);            if (!viewResult.Success)                await context.Response.WriteAsync(OMG! 连错误视图都找不到了。。);            //创建临时的StringWriter实例用来配置到视图上下文中            using (var output new StringWriter())            {                //视图上下文对于视图渲染来说很重要视图中的前后台交互都需要它                var viewContext new ViewContext()                {                    HttpContext context,                    Writer output,                    RouteData new Microsoft.AspNetCore.Routing.RouteData()                    {                        //RouteData在这里传入视图这样视图可以显示错误信息之类的数据                    },                    View viewResult.View,                    FormContext new FormContext(),                    ActionDescriptor new Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor()                };                //渲染                await viewResult.View.RenderAsync(viewContext);                //输出到响应体                await context.Response.WriteAsync(output.ToString());            }        }    });    //后面是Mvc的中间件执行Mvc的处理    //...app.UseMvc} 总结 这个技巧还能用于单页面应用程序的路由重定向把所有路由都输出入口页面代码。 相关文章 ASP.NET Core缓存静态资源 中间件实现服务端静态化缓存 原文https://yangshunjie.com/A-Middleware-Implement-For-Rendering-Razor-Views-In-AspNetCore.html .NET社区新闻深度好文欢迎访问公众号文章汇总 http://www.csharpkit.com
http://www.pierceye.com/news/453324/

相关文章:

  • 服务器建网站教程宁波网络营销推广制作
  • 微信公众号属于网站建设网站云解析域名解析
  • 网站的建设及推广在哪找可以做网站的
  • 网站经常修改好不好北京互联网公司50强
  • 知识网站有哪些h5用什么制作
  • 广州网站制作联系方式上海共有多少家企业
  • 自己建一个网站需要什么网站关键词分析工具
  • 建三江建设局网站四川省建设厅官方网站电话
  • 福建志佳建设工程发展有限公司网站vi品牌包装
  • 专业门户网站开发公司龙岩正规全网品牌营销招商
  • 网站怎么做qq微信登陆政务网站的建设时期的概述
  • 购物网站的目的和意义西安做网站xamokj
  • 厦门市建设局网站网站开发周记30篇
  • 工业园区门户网站建设方案塘沽网站开发
  • 郑州网站设计 公司驻马店市可以做网站的公司
  • 推荐盐城网站开发安陆网站开发
  • wordpress中文网站模板软件开发者路线图
  • 福清市建设局网站深圳网站制作品牌祥奔科技
  • 工程建设采购有哪些网站做网络销售怎么样
  • wordpress数据库和网站文件下载商业网站成功的原因
  • 30岁转行做网站设计百度秒收网站
  • 网页设计与制作心得体会1000福州网站seo公司
  • 学校网站定位手机网站建设怎么样
  • 苏州科技网站建设模板网站 seo
  • 免费qq刷赞网站推广网站建设具体项目及价格
  • 怎么做网站页面代码搜索网站的根目录
  • 网站建设免责申明书做qq图片的网站吗
  • 营销型单页网站电子商务平台建设
  • 去柬埔寨做网站是传销吗app推广服务部
  • 网站建站的流程海南住建部建设网站的网站