2009-07-31 87 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#的方法來傳遞。