Asp.net

WebMethod 以 JSON 格式返回值

  • January 29, 2015

如何以 JSON 格式將值從 Webmethod 返回到客戶端?

我想返回兩個靜態 int 值。

我是否需要使用這兩個屬性創建新對象並返回它?

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;
       }

引用自:https://stackoverflow.com/questions/2127273