2014-01-02 1 views
0

Я пытаюсь опубликовать всю информацию о форме с помощью ajax. Мой пример кода здесь:Опубликовать специальный символ ajax serializeArray()

$.ajax({ 
      url: "@Url.Action("SaveTPGeneralInfo", "Techpack", new { area = "OMS" })", 
      data: $('#FormId').serializeArray(), 
      type: 'POST', 
      success: function (data) { 
       if (data) { 
        // ..... 
       } 
      }, 
      error: function (error) { 
       // ..... 
      } 
     }); 

Как я работаю в ASP.NET MVC 4, я ловя данные, как это:

public int SaveTPGeneralInfo(oms_techpack oms_techpack) 
    { 
     try 
     { 
      return 1; 
     } 
     catch (Exception ex) 
     { 
      return 0; 
     } 
    } 

Здесь некоторые данные содержат специальные символы (например, &, @). Эти символы передаются как зашифрованные (например, для '&' он передает 'amp;'). Как получить исходные данные, содержащие специальные символы. Нужна помощь ...

+0

Вы проверили это сообщение [Декодирование в asp.net 4.0 - Специальные символы] (http://stackoverflow.com/questions/16163605/decoding-in-asp-net-4-0-special-characters). Ваш вопрос кажется, что речь идет не о кодировании, поскольку, насколько я знаю, jQuery использует кодировку веб-страницы, которая вызывает метод AJAX для интерпретации полученных данных. Поэтому проблема должна заключаться в расшифровке в ASP-части вашего приложения. И убедитесь, что все UTF-8 в первую очередь. – effe

ответ

0

Я создаю 2 метода, для которых я запускаю результат, чтобы вернуть оригинал.

public string Decode(string value) 
    { 
     return (value) 
      .Replace(""", "\"") 
      .Replace("&lt;", "<") 
      .Replace("&gt;", ">") 
      .Replace("&#39;", "&") 
      .Replace("&#64;", "@"); 
    } 

    public string Encode(string value) 
    { 
     return (value) 
      .Replace("\"", "&quot;") 
      .Replace("'", "''") 
      .Replace("<", "&lt;") 
      .Replace(">", "&gt;") 
      .Replace("&", "&#39;") 
      .Replace("@", "&#64;"); 
    } 

Вы можете передать строку, которую хотите преобразовать в одну из них, и вы должны получить то, что хотите.