亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

ASP.NET CORE中控制器內return HTML 內容自動編碼問題

標簽:
C#

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

return Content( "<h1>测试测试</h1>");

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

return Content( "<h1>测试测试</h1>","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 = $"<script>alert('{r}');parent.location.href='/login'</script>";
            con.ContentType = "text/html;charset=utf-8";

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

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

點擊查看更多內容
TA 點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優質文章

正在加載中
全棧工程師
手記
粉絲
20
獲贊與收藏
97

關注作者,訂閱最新文章

閱讀免費教程

  • 推薦
  • 評論
  • 收藏
  • 共同學習,寫下你的評論
感謝您的支持,我會繼續努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學

大額優惠券免費領

立即參與 放棄機會
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

舉報

0/150
提交
取消