1
我有一個剃鬚刀視圖,下面的AJAX Jquery將UserData對象發佈到控制器。它調用操作方法,但在控制器中調試時參數中的值爲空。我已經看過在網上,並在類似的問題計算器,但仍無法看到下面的代碼丟失:Ajax Json將null發佈到控制器操作方法
在我的Razor視圖:
$(document).ready(function(){
$('#button').click(function(e){
e.preventDefault();
var UserData = {"name":"test"}
$.ajax({
url: '/Home/Send/',
data : JSON.stringify(UserData),
type: 'POST',
traditional: true,
contentType: 'json',
success: function (data) {
$('#message').html("json data was sent to controller");
}
});
})});
在我的控制器:
[HttpPost]
public JsonResult Send(UserData userdata)
{
return Json(new { status = true });
}
public class UserData
{
public string name { get; set; }
}
UserData對象與我在AJAX post中發送的對象相匹配,但controller action方法中的參數值爲null。
我還需要添加什麼來使數據通過控制器?
謝謝這個工作。我以爲我曾嘗試過'application/json'和其他一些內容類型。是否有可能使用這種方法在@ Html.BeginForm中發佈數據以提交表單值,或者是否必須使用表單值創建一個javascript對象,然後將其作爲上述示例中的數據與ajax一起發佈? – Theomax
沒問題!使用表單數據,您可以簡單地調用'$('#yourForm')。serialize()'而不需要明確地發送帶請求的內容類型。默認情況下,如果沒有指定jQuery,則發送'application/x-www-form-urlencoded'作爲ajax請求的內容類型。只要確保您的表單字段具有正確的名稱,並且ASP.NET MVC將能夠讀取請求數據。 –