使用jQuery中的参数调用ASP.NET函数

时间:2012-11-22 09:15:23

标签: jquery asp.net function

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

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

jQuery (default.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函数并获取返回值。 UPDATE 实际代码:

$(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 个答案:

答案 0 :(得分:0)

如果要将某些值传递给服务器端,则参数名称应相同。在你的情况下,你可以尝试这样的东西

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

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

答案 1 :(得分: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>

答案 2 :(得分:0)

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

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

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

<强>解决方案

  1. 如果您需要调用仅服务器方法,请在服务器端使用WebMethod,在客户端使用ajax。见this

    $。AJAX({  类型:“POST”,  url:“MessagePopup.asmx / SendMessage”,  数据:“{subject:'”+ subject +“',message:'”+ message +“pupilId +”'}“,  contentType:“application / json; charset = utf-8”,  dataType:“json”,    成功:函数(msg){    //在这里做一些有趣的事 }   });

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

  3. 看到这篇文章

    How to call server side function using jquery wth out page refresh?

答案 3 :(得分:0)

您正在使用的语法<%= %>是在页面呈现期间调用Response.Write函数的快捷方式 - 有关详细信息,请查看此MSDN link。请注意,这是服务器端部分,它实际上将输出写入呈现的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调用。