コントローラのメソッドを呼び出すためにJquery Ajaxを使用していますが、私はいつも無効なjsonプリミティブエラーが発生しています。jquery-ajaxで無効なjsonプリミティブエラーを取得する
以下はコードです。コントローラで
クライアント側コード
$("#something >li").each(function() {
widgetsobj.push({
WidgetId: $(this).attr("dbid"),
ColumnNumber: 2,
RowNumber: 3,
WidgetType: "Graph",
WidgetName: "ddd",
PageName : "Page1"
});
});
$.ajax({
url: "/Home/ABC",
dataType: "json",
type: "POST",
contentType: "application/json; charset=utf-8",
data: { pagename1: pagename, widgetsobj1: JSON.stringify(widgetsobj) },
success: function (data) {
alert("ss");
},
error: function (data) {
debugger;
}
});
[HttpPost, ValidateInput(false)]
public JsonResult ABC(string pagename1, List<XYZ> widgetsobj1)
{
// do something
}
注XYZは、以下の特性を持つオブジェクトです。
widgetIdが
ColumnNumberに
RowNumber関数
WidgetType
WidgetName
ページ名
私が間違っている場所を教えてください。
Dave Wardはこれに関する長い説明を[http://encosia.com/asmx-scriptservice-mistake-invalid-json-primitive/](http://encosia.com/asmx-scriptservice-mistake -invalid-json-primitive /) – Austin