對不起,錯誤的格式或拼寫。因爲我正在寫這篇文章。 :)將Json數據傳遞給MVC控制器 - 操作方法的JObject參數
我將json數據傳遞給簡單控制器(MVC控制器)的動作方法。以下是供參考的示例代碼。
JS代碼:
VAR JSON = {IsInit:真,SearchParam:{類型: 「XX」,名稱: 「XX」,排序: 「」}};
Nx$(document).ready(function() {
Nx$.ajax({
async: true,
contentType: "application/json; charset=utf-8",
type: "POST",
url: "Home/Data",
dataType: "json",
data: JSON.stringify(json),
success: function (msg) {
alert('success');
},
error: function (jqxhr, textStatus, error) {
alert('fail');
}
});
操作方法:現在
<HttpPost>
<Route("Data")>
Function GetData(ByVal IsInit As Boolean, ByVal SearchParam As Newtonsoft.Json.Linq.JObject) As ActionResult
Return Nothing
End Function
,以上動作完全不來電。但是如果你使用下面的代碼,那麼它會調用,但SearchParam只是[object]類型,你不能使用任何searchParam對象的值。
<HttpPost>
<Route("Data")>
Public Function GetData(ByVal IsInit As Boolean, ByVal SearchParam As Object) As Object
Return Nothing
End Function
我認爲它不能在POST請求中傳遞多個參數與複雜的json對象。
如何獲取傳遞給MVC控制器的操作方法的JSON數據,以便SearchParam Json數據轉換爲JObject它自己。即應該使用初始的第一個Action方法簽名,而不使用任何主要的方法簽名更改。
很少觀察:
如果我接通上述操作方法作爲API控制器API;它開始工作,但說你需要按照下面的方法簽名。下面的方法不適用於MVC控制器。不知道爲什麼?但是,由於某種原因,我不能使用API控制器。
<HttpPost> <Route("Data")> Function GetData(ByVal req As Newtonsoft.Json.Linq.JObject) As ActionResult Return Nothing End Function
謝謝!
數據:JSON.stringify(json),正在將數據轉換爲字符串。我建議你刪除dataType:「json」,在阿賈克斯params –