2012-02-28 9 views
6

मेरा एएसपी.नेट एमवीसी एप्लीकेशन यूटीएफ -8 है, लेकिन मुझे अपने नियंत्रण से तीसरे पक्ष के ऐप से एन्कोडिंग.डिफॉल्ट में POST अनुरोध प्राप्त होता है।गैर-यूटीएफ -8 एन्कोडिंग (एएसपी.नेट एमवीसी) में पोस्ट डेटा प्राप्त करें

केवल एक ही कार्रवाई में से एक नियंत्रक के लिए अनुरोध एन्कोडिंग बदलने के लिए sanest और आसान तरीका क्या है? (मेरा शेष आवेदन यूटीएफ -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

संबंधित मुद्दे