0

以下に示すように複数の値を返そうとしていますが、成功した場合にのみ 1 つの値が返されます。

これは私がやろうとしていることです:

<script type="text/javascript">
        $(document).ready(function () {
                $("#getdetails").click(function () {
                $.ajax({
                    type: "POST",
                    url: "Default.aspx/Gettext",
                    data: JSON.stringify({ SampleText: $('#sampletext').val(), FontType: $('#fonttype').val()}),
                    contentType: "application/json; charset=utf-8",
                    dataType: "json",
                    success: function (msg) {
                        $("#Result").text(msg.d);
                    }
                });

        $("#FontLists").change(function () {
            $('#fonttype').val($('#FontLists option:selected').text());
        });
    });
</Script>

HTML:

Enter Text :<input id="sampletext" type="text" />
<select id="FontLists">
    <option value="Aharoni">Aharoni</option>
    <option value="Algerian">Algerian</option>
    <option value="Andalus">Andalus</option>
</select>
<input id="fonttype" type="hidden" />

コードビハインド:

<WebMethod()> _
<ScriptMethod(ResponseFormat:=ResponseFormat.Json)>
Public Shared Function Gettext(ByVal SampleText As String, ByVal FontType As String) As String
    Return SampleText
    Return FontType
End Function
4

1 に答える 1

1

2 つのプロパティを持つクラスを設計し、WebMethod がこのクラスのインスタンスを返すようにすることもできます (タイプミスがあった場合は申し訳ありませんが、私の VB.NET スキルはさびています)。

Public Class MyModel
    Public Property SampleText as String
    Public Property FontType as FontType
End Class

次に、このモデルを返すようにメソッドを調整します。

<WebMethod()> _
<ScriptMethod(ResponseFormat:=ResponseFormat.Json)>
Public Shared Function Gettext(ByVal SampleText As String, ByVal FontType As String) As MyModel
    Dim model = New MyModel()
    model.SampleText = SampleText
    model.FontType = FontType
    Return model
End Function

クライアントでは、名前を使用して 2 つのプロパティにアクセスできます。

success: function (msg) {
    alert(msg.d.SampleText);
    alert(msg.d.FontType);
}
于 2013-02-10T09:20:31.910 に答える