ASP .NET MVC 3 - RequestEncoding и ResponseEncoding для одного представления? - PullRequest
0 голосов
/ 19 декабря 2011

Я знаю, что могу добавить следующее в файл web.config для достижения того, чего я пытаюсь достичь.

Однако мне нужен только UTF-32 для одного просмотра, а не для всех. Как я могу сделать это? Я знаю, как это сделать с моим ответом:

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

а как это сделать с моей просьбой?

Редактировать Под запросом я имею в виду эквивалент этого: http://msdn.microsoft.com/en-us/library/hy4kkhe0.aspx. Указав этот атрибут, можно указать кодировку запроса.

Ответы [ 2 ]

2 голосов
/ 19 декабря 2011

Что вы имели в виду под «как это сделать с моей просьбой?». Значения в объекте Request касаются того, что ваши клиенты пришли на ваш сайт. Хотите сделать запрос на стороне сервера к URL?

Если вы хотите сделать запрос на стороне сервера, вы можете указать значение:

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

Edit: Значения в Request определяются клиентами, которые запрашивают ваш URL. На странице, которой вы делитесь, есть атрибут requestEncoding. Но в описании атрибута говорится, что он указывает предполагаемую кодировку. Но ясно, что любой запрос, имеющий Accept-Charset в своем заголовке, просто переопределяет ваши настройки. Кстати, сборка любой архитектуры принадлежит requestEncoding Настройка не рекомендуется. Если вы разрабатываете многопользовательское или общедоступное приложение, вы не можете решить, как сформировался запрос.

Вы также можете сделать это с помощью UploadData методом 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);
1 голос
/ 19 декабря 2011

Кодировка запроса определяется клиентом - браузером, вызовом jQuery ajax () или каким-либо приложением.Единственное, что вы можете сделать с кодировкой запроса, - это надеяться, что клиент, выполняющий вызов / запрос, имеет право сообщить вашему серверу о правильной кодировке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...