2009-07-31 3 views
2

В JavaScript У меня есть следующие:

$.ajax({ 
     url: "/ajax/test", 
     type: "POST", 
     dataType: "html", 
     data: '{"keyword" : "' + $('#tbxBrand').val() + '", "projectguid" : "<%= thisProject.ProjectGuid.ToString() %>", "userguid" : "<%= thisUser.UserGuid.ToString() %>"}', 
     beforeSend: function() { }, 
     success: function(data) { 
      alert(data); 
     } 
    }); 

В контроллере у меня есть:

public ActionResult Test() 
    { 
     string keyword = Request.Form["keyword"]; 
     return new JsonResult { Data = keyword }; 
    } 

Однако Request.Form делает не содержат правильных ключей. На самом деле, Request.Form выходит как что кажется неправильным:

Request.Form = {%7b%22keyword%22+%3a+%22data%22%2c+%22projectguid%22+%3a+%22cedce659-fd91-46c8-8f69-e527a38cffc2%22%2c+%22userguid%22+%3a+%2252ff20ab-cdf1-4dae-b539-645b6bf461a7%22%7d} 

Я не могу понять, что здесь не так. Может ли кто-нибудь помочь?

Спасибо!

ответ

2

Не указывайте данные. Объект будет преобразован в строку запроса. Если вы используете строку, она должна быть в формате строки запроса. Кроме того, я думаю, вам будет лучше использовать одинарные кавычки вокруг тегов. Это позволит вам использовать двойные кавычки внутри тегов, если это необходимо.

$.ajax({ 
    url: "/ajax/test", 
    type: "POST", 
    dataType: "html", 
    data: { 
      "keyword" : $('#tbxBrand').val(), 
      "projectguid" : '<%= thisProject.ProjectGuid.ToString() %>', 
      "userguid" : '<%= thisUser.UserGuid.ToString() %>' 
      }, 
    beforeSend: function() { }, 
    success: function(data) { 
     alert(data); 
    } 
}); 
2

Я использую это;

function postComment(id) { 
    var commentText = jQuery.trim($("#textbox" + id.toString()).val()); 

    $.post("/jQueryTests/jQueryAddMessageComment", { commentText: commentText }, function(newComment) { 
     $("#divComments" + id.toString()).html(newComment); 
    }); 
} 

затем в C#

 public ActionResult jQueryAddMessageComment(string commentText) 
    { 
     //postComment 
     return PartialView("commentList", new FormViewModel { LastComment = commentText }); 
    } 

Я не использую Request.Form как данные должны быть переданы в качестве параметра вашего метода C#.

Смежные вопросы