[英]ASP.Net MVC Website & Web API As Single Implementation
我有一個用ASP.Net MVC 4編寫的客戶端儀表板應用程序(不限於此版本,很樂意升級)。 該網站托管在Windows Azure中。
我們的客戶希望通過API以編程方式訪問此儀表板。
情感上,他們希望能夠使用HTTP Restful Service通過代碼以編程方式執行通常在儀表板網站上執行的所有相同功能。
....我的立即反應是簡單地構建一個ASP.net Web API項目,並從現有的MVC項目中分離出共享服務/庫/組件,以便API和MVC網站都可以調用相同的代碼庫。
問題
更新
根據評論,以下兩個獨立控制器(MVC項目中的原始MVC控制器和同一項目中的其他Web API控制器)的實現實際上可以正常工作。 請注意,根據以下鏈接文章 ,以下實現將是“ MVC 6之前”實現。 MVC 6本身提供了在單個控制器中實現API調用和通常的MVC View調用的功能(與繼承自不同基類的單獨控制器相反)。
public class ProductsController : Controller
{
//Products/Index
public ActionResult Index()
{
return View();
}
}
public class ProductsAPIController : ApiController
{
// GET api/productsapi/getall
public IEnumerable<string> GetAll()
{
return new string[] { "value1", "value2" };
}
}
最新版本的MVC(6)現在已將兩種技術集成到一個解決方案中。 http://www.asp.net/vnext/overview/aspnet-vnext/create-a-web-api-with-mvc-6
如果可以啟動新項目,這將是理想的選擇。
問題1:是的,請看一下上面的文章。
問題2:如果您既有MVC解決方案又有WebApi解決方案,Azure會很好,但是我認為您需要在不同的網站上運行它們(我對此不是100%)。
公平地說-就您的消費客戶而言,MVC或WebAPI無關緊要。
MVC和WebAPI都可以創建JSON或XML輸出-只是使它變得更簡單(WebAPI根據客戶端序列化相關響應)。
但是您可以很容易地將兩者混合在一起,就像其他人所說的那樣,就像Add New Item
一樣簡單
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.