爲什麼我的MVC行動(ASP.NET 1.1的核心)始終顯示值假此代碼:價值
$.ajax({
url: "/home/SetValue",
type: "post",
dataType: "json",
contentType: 'application/json; charset=utf-8',
data: { "val": true }
});
public class HomeController : Controller
{
[HttpPost]
public void SetValue(bool val)
{
bool check = val;
}
}
解決方案:
我必須做兩件事才能使它起作用。
首先,我不得不刪除dataType
行,因爲它指定了返回類型並且我的操作不返回任何內容。其次,contentType
是錯誤的。我可以使用application/x-www-form-urlencoded; charset=UTF-8
或只是刪除該行。這是默認的contenteType
,在這種情況下工作。
url的大小寫是不相關的,並且不需要回調(例如,成功或錯誤)。所以,這個工程:
$.ajax({
url: "/home/setvalue",
type: "post",
data: { "val": true }
});
我可以使用,而不是jQuery.ajax jQuery.post更加簡化它。這是我在我的第一個ASP.NET Core應用程序中最後一個簡單的概念證明:
// JavaScript
$("#myCheckbox").on("click", function()
{
var isChecked = $(this).is(":checked");
$.post({
url: "/home/setvalue",
data: { "val": isChecked }
});
});
// .NET controller
[HttpPost]
public void SetValue(bool val)
{
bool check = val;
}
感謝您的所有輸入。
是不是你的$ .ajax調用缺少成功和錯誤處理程序? – Juan
刪除'contentType'選項(你沒有對數據進行字符串化,並且沒有理由這樣做)。你爲什麼在調用'void'方法時指定'dataType:「json」'? –