2012-02-28 11 views
6

ASP.NET MVCアプリケーションはUTF-8ですが、サードパーティのアプリケーションからEncoding.DefaultでPOSTリクエストを受け取りました。非UTF-8エンコーディング(ASP.NET MVC)でPOSTデータを受信

1つのコントローラの唯一のアクションの要求エンコーディングを変更するsanestと最も簡単な方法は何ですか? (私のアプリケーションの残りはUTF-8のままでなければなりません)。いくつかの研究の後、私はこの解決策を考え出したので、私は、同じ問題に苦しんでいた

public class Message 
{ 
public int id { get; set; } 
public string phone { get; set; } 
public string mes { get; set; } 
public string to { get; set; } 
} 

[HttpPost] 
public ActionResult Receive(Message msg) 
{ 
     AddIncomingMessage(msg); 
     return new EmptyResult(); 
} 
+0

3.5年後、まだありません本当の答えではなく、さらにリモート – Leotsarev

答えて

-1

  1. は、カスタムアクションフィルター属性を作成しますことを入れ

    public class CharsetAttribute : ActionFilterAttribute 
    { 
        private readonly string _charset = null; 
    
        public CharsetAttribute() : this("UTF-8") 
        {} 
        public CharsetAttribute(string charset) 
        { 
         _charset = charset; 
        } 
    
        public override void OnActionExecuting(ActionExecutingContext filterContext) 
        { 
         filterContext.HttpContext.Response.Headers["Content-Type"] += string.Concat(";charset=", _charset); 
        } 
    } 
    
  2. をあなたが望むエンコーディングを指定して、私の場合:

    [CharsetAttribute("ISO-8859-1")] 
    public ActionResult MyAction(ThirdPartyViewModel model) 
    { (...) } 
    
+0

サンディエゴ、私は要求ではなく、レスポンスのエンコーディングについて尋ねます!レスポンスのエンコーディングを設定するのはかなり簡単です:) – Leotsarev

関連する問題