如何以
JSON格式将值从Webmethod返回给客户端?
有两个我想要返回的静态int值.
我需要创建具有这2个属性的新对象并返回吗?
GetStatus()方法被频繁调用,我不喜欢创建一个特殊对象的想法,每次只是为了json格式化…
[WebMethod] public static int GetStatus() { int statusProcess,statusProcessTotal; Status.Lock.EnterReadLock(); statusProcess=Status.Process; //Static field statusProcessTotal=Status.ProcessTotal; //Static field Status.Lock.ExitReadLock(); return ... }
在客户端,我捕获的返回值:
function OnSucceeded(result,userContext,methodName) (PageMethods.GetStatus(OnSucceeded,OnFailed);)
解决方法
我只想去一个对象.它符合你需要做的事情.如果您有两个返回值,则必须以结构化的方式将它们放在一起.
public class StatusResult { public int StatusProcess { get; set; } public int StatusProcessTotal { get; set; } } [WebMethod] [ScriptMethod(ResponseFormat = ResponseFormat.Json)] public StatusResult GetStatus() { int statusProcess,statusProcessTotal; //Status.Lock.EnterReadLock(); statusProcess = 5; statusProcessTotal = 1; //Static field var result = new StatusResult(); result.StatusProcess = statusProcess; result.StatusProcessTotal = statusProcessTotal; return result; }