2013-10-16 67 views
0

我有一個使用Visual Studio模板創建的Hottowel項目。我想在該項目中添加Web API功能。我已經創建了一個Web Api控制器到控制器文件夾,並試圖訪問像"http://localhost:53397/api/Values"但我得到一個錯誤,說The resource cannot be found錯誤。如何將Web API添加到現有的MVC Hottowel項目

我的控制器代碼看起來像下面

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Net; 
using System.Net.Http; 
using System.Web.Http; 

namespace MvcApplication8.Controllers 
{ 
    public class ValuesController : ApiController 
    { 
     // GET api/<controller> 
     public IEnumerable<string> Get() 
     { 
      return new string[] { "value1", "value2" }; 
     } 

     // GET api/<controller>/5 
     public string Get(int id) 
     { 
      return "value"; 
     } 

     // POST api/<controller> 
     public void Post([FromBody]string value) 
     { 
     } 

     // PUT api/<controller>/5 
     public void Put(int id, [FromBody]string value) 
     { 
     } 

     // DELETE api/<controller>/5 
     public void Delete(int id) 
     { 
     } 
    } 
} 

我在其中包含路由映射像下面的邏輯APP_start文件夾名爲BreezeWebApiConfig.cs的CS文件。

GlobalConfiguration.Configuration.Routes.MapHttpRoute(
      name: "BreezeApi", 
      routeTemplate: "api/{controller}/{action}" 
    ); 

讓我知道如果我缺少Web APi的任何配置設置。

回答

1

嘗試來裝飾你的ApiController像波紋管:

[BreezeController] 
public class NorthwindIBModelController : System.Web.Http.ApiController { 

    readonly EFContextProvider<NorthwindIBContext> ContextProvider = 
     new EFContextProvider<NorthwindIBContext>(); 

    [HttpGet] 
    public String Metadata() { 
     return ContextProvider.Metadata(); 
    } 

    [HttpPost] 
    public SaveResult SaveChanges(JObject saveBundle) { 
     return ContextProvider.SaveChanges(saveBundle); 
    } 

    [HttpGet] 
    public IQueryable<Customer> Customers() { 
     return ContextProvider.Context.Customers; 
    } 

欲瞭解更多信息,看看清風文檔here

0

它似乎是你正在做一個錯誤的網址請求。看看WebApi的微風路線配置。您需要像那樣http://localhost:53397/api/Values/Get那樣通過,因爲微風正在使用基於控制器動作的路由。

希望這會有所幫助。

相關問題