Специальные символы не передаются в действие контроллеров?Как я могу избежать специальных символов? - PullRequest
0 голосов
/ 15 ноября 2011

Я передаю строку, содержащую специальные символы, в действие контроллеров в asp.net mvc3. В действии он принимает строковые данные как ноль.

var url = '@Url.Action("SetData", "Home")';
var data = { Text: a, Data: urlData };
               $.post(url, data, function (result) {
                });

Действие контроллеров:

 public ActionResult SetData(string Text, string Data)
        {
        }

Данные моей строки:

Content Belongs To Tseries and Eros Entertainment Song : Tum Ho Movie : Rockstar Singer : Mohit Chauhan & Suzzane D' Mello Music By : AR Rahman Rockstar is a

Как передать строку, содержащую специальные символы?

Ответы [ 2 ]

1 голос
/ 15 ноября 2011

Переменная urlData содержит объекты в кодировке HTML.Вам необходимо сначала декодировать его в HTML, например, так:

var data = {
    text: 'some text',
    data: $('<div/>').html(urlData).text()
};

Или, возможно, изменить способ получения содержимого этой переменной.Я думаю, что в этом и заключается ваша проблема.

или на стороне сервера, если вы предпочитаете (рекомендуется первое решение):

public ActionResult SetData(string text, string data)
{
    var decodedData = Server.HtmlDecode(data);
    ...
}
0 голосов
/ 15 ноября 2011

Вы можете использовать функцию escape Javascript для строковых данных, когда вы помещаете их в свой объект данных, как этот

var data = { Text: a, Data: escape(urlData) }
...