我试图从ajax调用一个方法作为web方法,如:
$.ajax({
url: 'LifeStyleManager.aspx/AddSelfEntry',
method: "POST",
contentType: "application/json; charset=utf-8",
dataType: "json",
data: angular.toJson(categories),
//data: angular.copy(categories)
也尝试过数据" {' items' :'" + angular.toJson(类别)+"'}"
序列化为
{
"items": "[{\"name\":\"Fruits\",\"metrics\":\"cups\",\"entry\":0,\"recommended\":true,\"color\":\"#989898\"},{\"name\":\"Vegetables\",\"metrics\":\"cups\",\"entry\":1,\"recommended\":true,\"color\":\"#37A0BC\"},{\"name\":\"Whole Grains\",\"metrics\":\"cups\",\"entry\":1,\"recommended\":true,\"color\":\"#37A0BC\"},{\"name\":\"Fast Foods\",\"metrics\":\"times\",\"entry\":0,\"recommended\":false,\"color\":\"#989898\"},{\"name\":\"Sweets\",\"metrics\":\"times\",\"entry\":0,\"recommended\":false,\"color\":\"#989898\"},{\"name\":\"Sugary Drinks\",\"metrics\":\"times\",\"entry\":0,\"recommended\":false,\"color\":\"#989898\"}]"
}
此处类别序列化为
[
{
"name": "Fruits",
"metrics": "cups",
"entry": 0,
"recommended": true,
"color": "#989898"
},
{
"name": "Vegetables",
"metrics": "cups",
"entry": 1,
"recommended": true,
"color": "#37A0BC"
}
]
Webmethod就像:
[WebMethod(true)]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public static string AddSelfEntry(List<Entry> items)
{
这里的条目是
public class Entry
{
public string name;
public string metrics;
public int entry;
public bool recommended;
public string color;
}
我在控制台收到错误:
在debugmode中没有在webmethod上遇到断点。
更新:我从另一个html页面调用ajax而不是aspx页面,其中web方法位于代码隐藏中。是原因吗?
请在我错的地方帮忙?
答案 0 :(得分:1)
你的jQuery版本是什么?
输入(默认:
'GET'
)输入: String
method
的别名。如果您使用的是1.9.0之前的jQuery版本,则应使用
type
。
而不是method
,请在您的AJAX中尝试type: "POST"
。