C# ASP.NET MVC 3-单个视图的RequestEncoding和ResponseEncoding?

C# ASP.NET MVC 3-单个视图的RequestEncoding和ResponseEncoding?,c#,asp.net-mvc,encoding,C#,Asp.net Mvc,Encoding,我知道我能够将以下内容添加到web.config文件中,以实现我试图实现的目标 但是,我只希望UTF-32用于单个视图,而不是所有视图。我怎样才能做到这一点?我知道如何使用我的回答: HttpContext.Current.Response.Headers["Content-Type"] += ";charset=utf-32"; 但是如何处理我的请求呢 编辑 所谓请求,我指的是与此等价的:。通过指定该属性,可以指定请求编码。您所说的“如何处理我的请求”是什么意思。请求对象中的值是关于客户端

我知道我能够将以下内容添加到web.config文件中,以实现我试图实现的目标

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

HttpContext.Current.Response.Headers["Content-Type"] += ";charset=utf-32";
但是如何处理我的请求呢

编辑 所谓请求,我指的是与此等价的:。通过指定该属性,可以指定请求编码。

您所说的“如何处理我的请求”是什么意思。请求对象中的值是关于客户端访问站点的值。是否要向URL发出服务器端请求

如果要发出服务器端请求,可以将值设置为:

  WebRequest request = WebRequest.Create("domain.com");
  request.ContentType = "application/xxx; charset=utf-32";
  request.GetResponse();
编辑:
请求中的值由请求URL的客户端确定。在您共享的页面中,有一个
requestEncoding
属性。但是属性的描述表示它指定了假定的编码。但很明显,任何在其头中包含Accept字符集的请求都会覆盖您的设置。顺便说一下,不建议构建任何属于
requestEncoding
设置的体系结构。如果您正在开发多用户或公共应用程序,您可能无法决定请求的形状

您也可以使用WebClient的方法执行此操作:

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);
你说“如何处理我的请求”是什么意思。请求对象中的值是关于客户端访问站点的值。是否要向URL发出服务器端请求

如果要发出服务器端请求,可以将值设置为:

  WebRequest request = WebRequest.Create("domain.com");
  request.ContentType = "application/xxx; charset=utf-32";
  request.GetResponse();
编辑:
请求中的值由请求URL的客户端确定。在您共享的页面中,有一个
requestEncoding
属性。但是属性的描述表示它指定了假定的编码。但很明显,任何在其头中包含Accept字符集的请求都会覆盖您的设置。顺便说一下,不建议构建任何属于
requestEncoding
设置的体系结构。如果您正在开发多用户或公共应用程序,您可能无法决定请求的形状

您也可以使用WebClient的方法执行此操作:

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()的调用或某些应用程序。关于请求编码,您唯一能做的就是希望执行调用/请求的客户端能够正确地告诉服务器其编码。

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

您提供的链接仅在客户端没有告诉您其提供的编码时指定假定的编码。事实上,这仍然是由客户提供的。此外,您需要解决的问题是什么?当客户端没有告诉您它提供了什么编码时,您提供的链接只指定了假定的编码。事实上,这仍然是由客户提供的。另外,你需要解决的问题是什么?太好了。我如何使用它作为WebClient的UploadValues函数的等价物?我用WebClient版本编辑了答案。但是当使用UploadData方法时,您可以设置内容类型参数,而不是UploadValue。在新的解决方案中,它可以与UTF8配合使用(但会丢失字符)。一旦我切换到UTF32,服务器上就会出现错误500。我试着设置一个断点。它甚至没有到达URL.Mathias.控制器的第一行。。我回答了您第一个关于设置请求对象的头的问题。现在关于编码有了一个不同的问题。请问一个新问题,或者试着自己处理你的项目。那太好了。我如何使用它作为WebClient的UploadValues函数的等价物?我用WebClient版本编辑了答案。但是当使用UploadData方法时,您可以设置内容类型参数,而不是UploadValue。在新的解决方案中,它可以与UTF8配合使用(但会丢失字符)。一旦我切换到UTF32,服务器上就会出现错误500。我试着设置一个断点。它甚至没有到达URL.Mathias.控制器的第一行。。我回答了您第一个关于设置请求对象的头的问题。现在关于编码有了一个不同的问题。请问一个新问题,或者试着自己处理你的项目。不清楚你想做什么。不清楚你想做什么。