我试图返回多个值,如下所示,但只有一个值在成功时返回。
这就是我想要做的事情:
<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
答案 0 :(得分: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
在客户端上,您可以使用其名称访问这两个属性:
success: function (msg) {
alert(msg.d.SampleText);
alert(msg.d.FontType);
}