【问题标题】:Ajax return multiple valuesAjax 返回多个值
【发布时间】:2013-02-10 09:18:48
【问题描述】:

我正在尝试返回多个值,如下所示,但一个值仅在成功时返回。

这就是我想要做的:

<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

【问题讨论】:

    标签: asp.net ajax webmethod


    【解决方案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);
    }
    

    【讨论】:

    • 还有一个简单的问题,而不是产生警报,我如何组合并显示为 $("#Result").text(msg.d[0].WatermarkText, msg.d[1].FontType );
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-22
    • 2018-06-23
    • 1970-01-01
    • 1970-01-01
    • 2010-09-29
    • 2019-08-09
    相关资源
    最近更新 更多