1

我可以从 jQuery 调用没有参数的 ASP.NET 函数,如下所示(default.aspx.cs)

public string GetaString()
        {
            return "New String";
        }

jQuery(默认.aspx)

$(function () {var returnStr = '<%=GetaString() %>'; };

但是当调用带有参数的函数时,我没有得到任何值。

public string GetaString(string str1)
        {
            return "New String"+ str1;
        }

$(function () {var Company = "test";var returnStr = '<%=GetaString(Company) %>'; };

抱歉信息缺失。但这是通过 jquery 变量时的问题。

如何将参数传递给 asp.net 函数并获取返回值。更新实际代码:

$(document).ready(function () {

        $("#txtCompany").focusout(function () {

            var Company = $("#txtCompany").val();
            var returnStr = '<%=GetNameString("Company") %>';
            var availableTags = returnStr.split('|');
            $("#txtName").autocomplete({
                source: availableTags
            });

        });
});

我正在从 txtCompany 中的值填充 txtName 的自动完成。它在提供直接参数时起作用。

4

4 回答 4

0

如果要向服务器端传递一些值,参数名称应该相同。在你的情况下,你可以尝试这样的事情

    $(function () {var str1="some value"; var returnStr = '<%=GetaString(str1) %>'; };

其他代码相同。我假设您的代码实际上可以调用服务器端函数。

于 2012-11-22T09:24:46.030 回答
0
Ruchan ,
your code is fine , no problems are there 

i just run the code on my pc and its return the "New String Test"   value 
please have below what i run and its return correct value so let me know what exactly you want ?




<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">

    <script src="Scripts/jquery-1.4.1.js" type="text/javascript"></script>
    <title></title>
    <script>

        var returnStr = '<%=GetaString("Test") %>';

        alert(returnStr);
    </script>
</head>
<body>
    <form id="form1" runat="server">
    <div>

    </div>
    </form>
</body>
</html>
于 2012-11-22T09:55:52.760 回答
0

我不认为你可以像这样从 Jquery 调用服务器端函数。传递参数问题是在那之后。

你不能像这样在 Jquery 中调用服务器端函数

 $(function () {var returnStr = '<%=GetCompString("Test") %>'; };

解决方案

  1. 如果您有需要调用的仅限服务器的方法,请在服务器端使用 WebMethod,在客户端使用 ajax。看到这个

    $.ajax({ type: "POST", url: "MessagePopup.asmx/SendMessage", data: "{subject:'" + subject + "',message:'" + message + " studentId +"'}", contentType: "application/json; charset=utf-8", dataType: "json", success: function(msg) { // 在这里做一些有趣的事情。} });

  2. 要调用 ASP.NET AJAX“ScriptServices”和页面方法,您需要使用完整的 $.ajax() 语法:link

  3. 看到这个帖子

    如何在页面刷新的情况下使用 jquery 调用服务器端函数?

于 2012-11-22T10:00:28.033 回答
0

您使用的语法<%= %>是页面呈现期间函数调用的快捷方式Response.Write- 查看此MSDN 链接以获取更多信息。请注意,这是服务器端部分,它实际上在将输出发送到客户端之前将输出写入呈现的 HTML 。在您的第一个场景中:

var returnStr = '<%=GetNameString("Company") %>';

页面渲染来到该<%= %>部分,GetNameString使用参数调用函数"Company"并将其输出写入页面。然后生成的标记被发送到客户端。

所以最终当页面到达客户端时,它看起来像这样:

$(document).ready(function () {

        $("#txtCompany").focusout(function () {

            var Company = $("#txtCompany").val();
            var returnStr = 'New StringCompany'; // or whatever the output of the GetNameString is
            var availableTags = returnStr.split('|');
            $("#txtName").autocomplete({
                source: availableTags
            });

        });
});

现在执行 javascript。显然,它没有关于服务器端函数的概念,而只是一个字符串文字。

如果你真的想从客户端代码调用服务器端函数,你应该按照其他人的建议去做——实现 HttpHandler、Web 服务或页面方法并对其进行 Ajax 调用。

于 2012-11-22T10:30:11.437 回答