2012-12-09 150 views
1

我正在學習aspnet mvc 4 web api,並且通過簡單地返回apicontrollers中的對象來實現它非常容易。返回值類型時,ASP.NET Web API中的JSON結果問題?

但是,當我嘗試返回值類型,如bool,int,string - 它不會以JSON格式返回。 (在提琴手這表明「真/假」結果在JSON的所有原材料和網頁流量,但沒有內容。

任何人都可以幫我在這?

感謝。

一些示例代碼爲TestApiController :

public bool IsAuthenticated(string username) 
{ 
    return false; 
} 

爲jQuery的使用的一些示例代碼:

function isAuthenticated(string username){ 
     $.getJSON(OEliteAPIs.ApiUrl + "/api/membership/isauthenticated?username="+username, 
      function (data) { 
       alert(data); 
       if (data) 
        return true; 
       else 
        return false; 
      }); 
} 

注意:上面的jquery沒有返回任何內容,因爲EMPTY內容已被返回 - 但是如果你在fiddler中檢查它,你實際上可以在webview中看到返回「false」。

歡呼聲。

+0

這裏發佈一些你的控制器代碼/動作 – Regfor

回答

0

在調用回調函數之前,返回數據被傳遞給jquery parseJSON方法,該方法期望數據爲JSON格式。如果響應格式不正確,jQuery將忽略響應數據並返回null。你有兩個選擇,你包裹在一個類或匿名類型返回boolean值,使網絡API將返回一個JSON對象:

return new { isAuthentication = result } 

或者因爲你沒有返回正確格式的JSON不會從jQuery的使用的getJSON響應。也許只是使用$.get

下面是jQuery的文檔報價:

重要:對於jQuery 1.4,如果JSON文件包含語法錯誤, 請求通常會失敗默默。出於這個原因避免頻繁手動編輯 JSON數據。 JSON是一種數據交換格式,其中 的語法規則比JavaScript的對象 字面記法更嚴格。例如,以JSON表示的所有字符串, 無論它們是屬性還是值,都必須包含在 雙引號中。有關JSON格式的詳細信息,請參見http://json.org/

+1

謝謝!一定要用'object'聲明方法作爲返回類型。 – Fred