如果ASP.Net MVC用於返回數據,並在視圖中顯示出來,和Web API是用來傳輸數據,何時以及如何將某人顯示任何數據來從Web API調用返回?執行的web API獲取方法後如何顯示數據
我是在什麼情況下你會使用一個比其他困惑。我在發佈之前已經在網上研究過這些,但仍然無法得到一個簡單明確的答案。
我理解Web PI用於通過HTTP暴露RESTful服務,但該數據之後被檢索(通過GET),什麼是使用Web API,如果你不能顯示數據的意義呢?
任何解釋的簡潔,將不勝感激。
如果ASP.Net MVC用於返回數據,並在視圖中顯示出來,和Web API是用來傳輸數據,何時以及如何將某人顯示任何數據來從Web API調用返回?執行的web API獲取方法後如何顯示數據
我是在什麼情況下你會使用一個比其他困惑。我在發佈之前已經在網上研究過這些,但仍然無法得到一個簡單明確的答案。
我理解Web PI用於通過HTTP暴露RESTful服務,但該數據之後被檢索(通過GET),什麼是使用Web API,如果你不能顯示數據的意義呢?
任何解釋的簡潔,將不勝感激。
您可以使用客戶端的JavaScript框架如
檢索和顯示你的返回的數據。
或者這一個角度:http://code.msdn.microsoft.com/CRUD-Grid-Using-AngularJS-84afaf13
拉爾斯,感謝您的鏈接。我會看看Angualar的一個。然而,在我對布蘭登的問題中,現在我正在尋找一種簡單的方法來用ASP.Net MVC,Ajax和jQuery來做到這一點。 – sagesky36
的Web API是構建Web服務,利用HTTP的所有方面的框架 - ASP。 NET MVC是一個構建網站的框架。
你可以一起使用這兩個;例如,您可以使用ASP.NET MVC生成HTML「模板」服務器端,然後在客戶端使用JavaScript來調用Web API資源來獲取和修改數據並將其「插入」到HTML模板中。查看@Lars的答案,瞭解更多關於特定場景以及更簡單的JavaScript框架的信息。這種技術主要用於創建比傳統網站更流暢的用戶體驗。
選擇Web API而不是將所有內容都放入ASP.NET MVC網站的一個重要原因是,如果您曾經將網站擴展到多種類型的客戶端(例如,智能手機,Mac/Windows應用程序等)。由於ASP.NET MVC確實適合網站/生成HTML,而本地客戶傾向於喜歡簡單的Web請求並呈現UI客戶端,所以更簡單的方法就是在Web API背後進行所有數據操作,並擁有全部的用戶界面消耗它。
有一噸多說關於Web API,當你選擇它翻轉(或音樂會)ASP.NET MVC。實際上,我認爲當您將其與基於SOAP的服務堆棧(如WCF)進行比較時,會出現更有趣的折衷。
Brandon,來自AJAX請求的典型調用如何通過jQuery看起來像Web API方法?由於Web API本質上是一種服務,在AJAX調用的某個地方,您必須指定特定的端點/ URL以及Controller/Action方法。 – sagesky36
So Brandon,你是說一個典型的場景可能是使用ASP.Net MVC應用程序來生成數據,我將通過AJAX調用來檢索Web API服務? – sagesky36
順便說一句,我假設Ajax調用Web API方法會通過適當的ASP.Net MVC控制器/操作方法。我只是困惑這種情況如何看待一個簡單的方法調用......在以前的情況下(在Web API之前),數據庫調用將來自Ajax到ASP.Net MVC控制器/操作方法。如果你能用我對拉爾斯所說的使用Web API來解決問題,那就太棒了。我想,Web API可能會更好地用於像Lars這樣的SPA應用程序,而不是ASP.Net MVC。 – sagesky36
您可以使用Telerik kendo UI Web,它是免費的,根據GPLv3。它使用knockoutjs。
Download Kendo UI Web Open Source
有很多免費的在那裏,但我只是碰巧使用劍道UI。
謝謝,但我寧願使用ASP.Net MVC堅持純JavaScript,Ajax和jQuery。 – sagesky36
您通常不會有MVC調用Web API來獲取數據,因爲它可以直接獲取數據。什麼Web API是有用的是允許JavaScript進行AJAX調用(可能來自您使用MVC呈現的HTML頁面)... –
對不起安東尼,仍然不明白....如果是這樣的話,那有什麼意義通過Web API使用ASP.Net MVC?如果我錯了,請更正我的錯誤,但對於AJAX調用中的Web API url,您必須通過編號的url指定不同的端點,因爲通過標準的MVC Controller/ActionMethod調用都不會存在。正確? – sagesky36