2011-12-19 43 views
0

我知道我可以将以下内容添加到web.config文件中,以实现我想实现的目标。ASP .NET MVC 3 - RequestEncoding和ResponseEncoding为单个视图?

不过,我只想要一个单一视图的,不是所有的人UTF-32。我怎样才能做到这一点?我知道如何做到这一点与我的回应:

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

但如何做到这一点与我的要求?

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

+0

目前还不清楚你想要做什么。 – 2011-12-20 12:42:41

回答

2

你是什么意思“如何做到这一点与我的要求?”。 Request对象中的值是关于您的客户访问您的网站的。你想向服务器端请求一个URL吗?

如果你想使一个服务器端的请求,你可以把值改为:

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

编辑:Request的值是由你的请求URL的客户决定的。在您分享的页面中,有一个requestEncoding属性。但属性的描述说明它指定假定编码。但很显然,任何在其Header中包含Accept-Charset的请求都会覆盖您的设置。顺便说一下,建议任何建筑物都属于requestEncoding设置不建议。如果你正在开发一个多用户或公共应用程序,你可能不会决定如何形成请求。

您还可以使用Web客户端的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); 
+0

我记录了我希望如何工作。 – 2011-12-19 12:57:25

+1

我编辑了答案 – 2011-12-19 13:57:31

+0

太棒了。我怎样才能使用它作为WebClient的UploadValues函数的等价物? – 2011-12-19 18:38:07

2

请求的编码是由客户决定 - 浏览器,jQuery的阿贾克斯(),或某些应用程序的调用。你可以做的唯一一件关于请求编码的事情是,希望执行调用/请求的客户端能够正确地告诉服务器关于其编码的正确性。

+0

我记录了我希望如何工作。 – 2011-12-19 12:56:49

+0

您提供的链接仅指定**假定的**编码,用于客户端不告诉您提供何种编码。它仍然是一个事实,它是**客户端**提供的。此外,你需要解决什么问题? – 2011-12-19 13:11:46