栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

ASP.NET CORE中控制器内return HTML 内容自动编码问题

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

ASP.NET CORE中控制器内return HTML 内容自动编码问题

以前ASP.NET MVC中在控制器中直接

return Content( "测试测试");

在前台VIEW上就显示加粗的文字了,但是在ASP.NET CORE中这样的话是直接原样返回的,他自动给你编码了,正确的做法应该是如下代码:

return Content( "测试测试","text/html", Encoding.GetEncoding("GB2312"));

这个编码好像在CORE中默认是没有的,需要在Startup.cs中的ConfigureServices方法中注册一下,代码如下:

//添加gb2312的支持
Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);

然后上面只是在控制器里,如果我是在baseController.cs中重写那个过滤器方法的话得用如下代码:

    public override void onActionExecuting(ActionExecutingContext context)
    {
 if (HttpContext.Session.GetInt32("userid") == null)
 {
     var con = new ContentResult();

     //byte[] gb = Encoding.Unicode.GetBytes("登录超时,请重新登录!");
     //string r = "";
     //for (int i = 0; i < gb.Length; i += 2)
     //{
     //    r += "\u" + gb[i + 1].ToString("x").PadLeft(2, '0') + gb[i].ToString("x").PadLeft(2, '0');
     //}

     string r = "登录超时,请重新登录!";

     con.Content = $"";
     con.ContentType = "text/html;charset=utf-8";

     context.Result = con;
 }
 base.onActionExecuting(context);
    }

如果是用注释里的代码,就是把所有的中文都转成那个以u开头的代码。。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/231870.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号