我正在处理一些代码,似乎无法理解为什么这总是失败。我曾尝试调试它,但asp页面是引用不会打破断点。 (暗示可能是它没有取得页面?)。对于数据:部分我正好在帖子之前试图查看它是否会执行JSON.stringify({variables})以查看是否有效,但它没有
我在这里做错了吗?
$.ajax({
type: 'POST',
url: 'AutoComplete.asmx/getWebFormDesignFieldContents',
data: {
'fe_name': "*",
'count': 200, //this might need to be adjusted slightly. I may want to make it more OR less.
'also_search_fe_desc': true,
'opts': opts
},
contentType: 'application/json; charset=utf-8',
dataType: 'json',
success: function (result) {
//success
$("div.modal").replaceWith($(result));
$("div.modal").fadeIn();
},
error: function (result) {
//error
//alert("Error: "+result.statusText);
$("div.overlay").fadeOut();
}
});
在ASP的服务器端部分,我有:
public String getWebFormDesignFieldContents(String fe_name, int count, bool also_search_fe_desc, String opts)
{
String retValue = "";
...
return retValue;
}
答案 0 :(得分:2)
您需要使用[WebMethod]
属性
[WebMethod]
public String getWebFormDesignFieldContents(
String fe_name,
int count,
bool also_search_fe_desc,
String opts)
您需要更改的其他内容是您的json格式。你必须传递一个字符串。
data:'{"fe_name": "*", "count": 200, "also_search_fe_desc": true, "opts":' + opts + '}'
您可以使用JSON.stringify
,但请注意旧浏览器不支持它,因此您可能需要处理这种情况。
您还需要处理返回逻辑。现在我只看到你返回一个空字符串。如果您显示更多代码,我们也可以帮助您。
答案 1 :(得分:0)
您需要将retValue编码为json
System.Web.Script.Serialization.JavaScriptSerializer serializer = new System.Web.Script.Serialization.JavaScriptSerializer();
string jsonresult = serializer.Serialize(retValue );