2012-02-28 13 views
6

ASP.NET MVC Uygulamam UTF-8'dir, ancak üçüncü taraf uygulamasından denetimim dışı olarak Encoding.Default uygulamasında POST isteğini alıyorum.UTF-8 olmayan kodlama (ASP.NET MVC) POST verileri alma (ASP.NET MVC)

tek eylem biri kontrolörü için isteği kodlamasını değiştirmek için sanest ve en basit yolu nedir? (Uygulamamın geri kalanı UTF-8 kalmalıdır).

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 yıl sonra ve hala hiçbir gerçek cevap, ben Talebinin kodlaması hakkında sormak bile uzak – Leotsarev

cevap

-1

Ben aynı sorunu ile mücadele için, bazı araştırma sonra ben bu çözüm geldi:

  1. özel Eylem Filtre Özellik oluşturun:

    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. Put o İstediğiniz kodlamayı belirterek harekete geçin; benim durumumda:

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

Diego, değil tepkisi! Yanıtın kodlamasını ayarla oldukça basittir :) – Leotsarev