1

次のように、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

4 に答える 4

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({ タイプ: "POST", url: "MessagePopup.asmx/SendMessage", データ: "{件名:'" + 件名 + "',メッセージ:'" + メッセージ + "生徒 ID +"'}", contentType: "application/json; charset=utf-8", dataType: "json", success: function(msg) { // ここで興味深いことを行います。 } });

  2. ASP.NET AJAX の「ScriptServices」とページ メソッドを呼び出すには、完全な $.ajax() 構文を使用する必要があります:リンク

  3. この投稿を参照してください

    ページの更新なしでjqueryを使用してサーバー側の関数を呼び出す方法は?

于 2012-11-22T10:00:28.033 に答える
0

使用している構文は、ページ レンダリング中<%= %>の関数呼び出しへのショートカットです。詳細については、このMSDN リンクを確認してください。これはサーバー側の部分であることに注意してください。クライアントに送信されるに、レンダリングされた HTML に実際に出力を書き込みます。最初のシナリオでは:Response.Write

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 に答える
0

サーバー側に何らかの値を渡したい場合は、パラメーター名が同じである必要があります。あなたの場合、このようなことを試すことができます

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

他のコードは同じです。サーバー側の関数を呼び出すために実際に機能するコードがあると思います。

于 2012-11-22T09:24:46.030 に答える