asp.net MVC 3 -单个视图的RequestEncoding和ResponseEncoding

本文关键字:RequestEncoding ResponseEncoding 视图 单个 net MVC asp | 更新日期: 2023-09-27 18:18:11

我知道我可以将以下内容添加到web中。配置文件,以实现我想要实现的。

但是,我只希望一个视图使用UTF-32,而不是所有视图。我怎样才能做到这一点呢?我知道如何用我的回答来做到这一点:

HttpContext.Current.Response.Headers["Content-Type"] += ";charset=utf-32";

但是如何处理我的请求呢?

编辑通过请求,我的意思相当于:http://msdn.microsoft.com/en-us/library/hy4kkhe0.aspx。通过指定该属性,可以指定请求编码。

asp.net MVC 3 -单个视图的RequestEncoding和ResponseEncoding

你说的"如何处理我的请求"是什么意思?请求对象中的值是关于您的客户端访问您的站点的。您想要对URL发出服务器端请求吗?

如果你想发出一个服务器端请求,你可以把value设置为:

  WebRequest request = WebRequest.Create("domain.com");
  request.ContentType = "application/xxx; charset=utf-32";
  request.GetResponse();
编辑:

Request中的值由请求您的URL的客户端确定。在您共享的页面中,有一个requestEncoding属性。但是该属性的描述说它指定了假定的编码。但是很明显,任何在其Header中具有Accept-Charset的请求都可以覆盖您的设置。顺便说一下,不建议构建任何属于requestEncoding设置的架构。如果您正在开发多用户或公共应用程序,则可能无法决定Request的形状。

你也可以使用WebClient的UploadData方法:

WebClient wc = new WebClient();
wc.Headers.Add("Content-Type", "application/x-www-form-urlencoded; charset=utf-8");
byte[] responseArray = wc.UploadData("URL_TO_POST", System.Text.Encoding.Default.GetBytes("param1_name=param1_value&param2_name=param2_value"));
string responseText = System.Text.Encoding.ASCII.GetString(responseArray);

请求的编码由客户端决定-浏览器,调用jQuery ajax(),或一些应用程序。关于请求编码,你唯一能做的就是希望执行调用/请求的客户端能够正确地告诉服务器其编码