使用“webmethod”调用c#方法返回“undefined"
Calling C# method using "WebMethod" returns "undefined"
首先,我知道有很多类似的问题,但是没有对我的特殊情况有帮助(很可能我只是需要澄清,我不想打开一个旧的线程)。
我正在创建一个应用程序,我需要调用jQuery函数内的c#方法。我需要这样做的原因是,我需要使用两个特定的参数对数据库执行查询。
Javascript:$(".button").click(function(){
var dataId = $(this).attr("data-Id");
var s = PageMethods.returnStr(dataId, onSuccess, onError);
function onSuccess(result){
alert(s);
}
function onError(result){
alert("error");
}
});
c#: [WebMethod]
public static string returnStr(string Id)
{
// ... blah blah make query, return string s
return s;
}
返回的字符串未定义。如果我使用alert(result),我只会得到页面的语法。
我也试过引用c#变量使用:
c#public static string s;
JavaScript: alert('<%=s%>');
,这可以工作,但是当我调用WebMethod时,我不能修改s。
我尝试过的最后一件事是ajax,但即使我对SO找到的答案进行建模,我也无法让它像我希望的那样工作-它返回"[object object]":
AJAX:$.ajax({
type: "POST",
url: "default.aspx/returnStr",
dataType: "json",
contentType: 'application/json; charset=utf-8',
error: function(result){
alert("request failed" + result)
},
success: function(result){
alert(result);
}
});
任何建议都是非常感谢的!! 你不能做你提议的事。Javascript在web浏览器中运行。c#在服务器上运行。你不能在浏览器中运行c#代码。
使用alert('<%=s%>');
可以工作,因为在发送到客户端之前,它在服务器上进行了评估。
你有两个选择:
- 创建一个纯javascript函数来完成你所需要的。
- 从ASP控件中使用普通的web窗体事件处理程序(即按钮的OnClick方法)。
- 向服务器发起一个AJAX调用来做你需要做的事情。
我看到你尝试了#3,但是你没有做对。URL为"default"。aspx/returnStr"没有任何意义。它不会自动运行default.aspx.cs中的returnStr
方法。
你最好使用#2。这是最简单的。
更新:另一个选择是使用asp按钮,如#2,然后在OnClick方法中,使用ClientScript。RegisterStartupScript,它将在回发完成后将Javascript注入页面。在你注入的javascript中,你可以运行下面的代码来打开弹出窗口
相关文章:
- RequireJS向模块传递配置总是返回undefined
- JSON数组数据返回Undefined
- JavaScript”;.方法“;返回undefined
- jQuery可以't获取data-*属性值,返回undefined
- Javascript/JSON警报返回Undefined
- Javascript:firstChild对象返回undefined
- 当尝试使用ajax读取文件时,变量返回undefined
- 如何避免JSON.stringify在特殊情况下返回undefined,从而为JSON.parse创建字符串失败
- 使用谷歌地图:一个返回undefined的自定义javascript函数
- Json在nodeJs和AngularJs中返回undefined
- 为什么像 Firefox 和 Chrome 控制台中的 '}{' 这样的结构会返回 'undefined'?
- 使用 HTML 和 JavaScript 从表单访问值时返回 undefined
- 在 CoffeeScript 中,当尝试调用类中的方法 (@_methodName) 时,它会返回 undefined
- 解析承诺'当'返回undefined(Javascript)
- NodeJS:zlib.gunzip(body)错误地返回“undefined”
- window.open在chrome扩展中返回undefined
- jQuery.pr()返回undefined,而.attr()对数据-*的作用与预期一样
- 正在读取嵌套json,jquery返回undefined
- IIFE是否总是返回undefined
- $timeout包装$http.post返回undefined而不是promise