2009-11-22 5 views
1

У меня проблема с некоторыми базовыми веб-службами ajax и asp.net. На моей странице веб-сайта у меня есть текстовое поле, которое является текстовым редактором, когда я помещаю текст и пытаюсь его отправить, ajax должен взять текст и передать его веб-сервису asp.net. Когда предложение не содержит escape-символов, оно идет хорошо, однако когда оно содержит escape-символ, веб-служба asp.net дает мне ошибку 500. При отладке он даже не входит в веб-службу.Escape character and error 500

Вопрос: Как я могу это исправить?

Вот код, который у меня есть. Javascript:

//posting the user comment 
function postComment() { 
    var comment_body = $("textarea[id*='txt_editor']").val(); 
    $.ajax({ 
     type: "POST", 
     url: "Article.asmx/postComment", 
     data: "{'article_id': '" + article_id + "', 'comment_body' : '" + comment_body + "'}", 
     contentType: "application/json; charset=utf-8", 
     dataType: "json", 
     success: function(msg) { 
      page_num = 1; 
      getComments(); 
      clearComment() 
     } 
    }); 
} 

И веб-службы выглядит следующим образом:

//posting the comment to database 
    [WebMethod] 
    public int postComment(int article_id, string comment_body) 
    { 
     try 
     { 
      using (ForMarieDataContext forMarie = new ForMarieDataContext()) 
      { 
       tbl_article_comment newComment = new tbl_article_comment(); 
       newComment.article_id = article_id; 
       newComment.comment_author = "Dmitri"; 
       newComment.comment_date = DateTime.Now.ToString(); 
       newComment.comment_body = comment_body; 

       forMarie.tbl_article_comments.InsertOnSubmit(newComment); 
       forMarie.SubmitChanges(); 

      } 

      return 1; 
     } 
     catch(Exception ex) 
     { 
      return 0; 
     } 
    } 
} 

Это основной код и я добавлю больше его для проверки безопасности. Однако на данный момент мне нужно как-то что-то сделать с escape-символами в тексте. Спасибо заранее.

ответ

2

Пусть JQuery обрабатывать вытекание и кодирование параметров:

$.ajax({ 
    type: "POST", 
    url: "Article.asmx/postComment", 
    data: { article_id: article_id, comment_body: comment_body }, 
    contentType: "application/json; charset=utf-8", 
    dataType: "json", 
    success: function(msg) { 
     page_num = 1; 
     getComments(); 
     clearComment() 
    } 
}); 

Обратите внимание на data собственности.