以前ASP.NET MVC中在控制器中直接
return Content( "<h1>測試測試</h1>");
在前臺VIEW上就顯示加粗的文字了续搀,但是在ASP.NET CORE中這樣的話是直接原樣返回的杉武,他自動給你編碼了慢哈,正確的做法應(yīng)該是如下代碼:
return Content( "<h1>測試測試</h1>","text/html", Encoding.GetEncoding("GB2312"));
這個編碼好像在CORE中默認(rèn)是沒有的,需要在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);
}
如果是用注釋里的代碼,就是把所有的中文都轉(zhuǎn)成那個以\u開頭的代碼逻杖。奋岁。