我將JSON對象傳遞迴C#aspx頁面的Web方法。如何正確地構造C#嵌套類以接收復雜的JSON
我的JavaScript看起來像:
return jsonItem = {
id: id,
title: title,
registrationPage: {
registration: registration
}
}
我通過這個項目到一個aspx Web方法:
$.ajax({
type: "POST",
url: "SaveXML.aspx/SaveAs",
data: JSON.stringify({ jsonItem : jsonItem }),
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (msg, textStatus) {
alert(textStatus);
},
});
的JSON有效載荷被髮送精細。
在aspx頁面我有類:
public class JSONItem
{
public string Id { get; set; }
public string Title { get; set; }
public RegistrationPage RegistrationPage { get; set; }
}
public class RegistrationPage
{
public string Registration { get; set; }
}
[WebMethod]
public static Policy Save(Policy policy)
{
}
當我嘗試建立這個我得到一個代碼分析錯誤,這是有道理的:
CA1034:Microsoft.Design:不要嵌套類型'SaveXML.RegistrationPage'。或者,更改其可訪問性,以便它不在外部可見。
如果我忽略這個錯誤,代碼就會工作。我曾嘗試更改修飾符,但註冊頁面對象未填充。
如何讓代碼工作並符合上述錯誤?
感謝
奇怪的是,你得到此警告的'RegistrationPage'類,但不是'JSONItem'類。 – Rawling
謝謝,是的。我寧願保持類嵌套。我喜歡這一行的簡單性:data:JSON.stringify({jsonItem:jsonItem}) - 並且不想將多個對象傳入save方法。 – davy
我的答案持續了一段時間,討論的是嵌套的類定義;我以爲你在'JSONItem'('class JSONItem {class RegistrationPage {...} ...}'中定義'RegistrationPage'。有一個嵌套_instance_類應該沒有什麼問題,所以這個警告使我困惑。 – Rawling