2015-03-02 120 views
1

現在我有兩個控制器,一個用於MVC另一個用於API。擴展MVC Api控制器名稱

// API 
public class UsersController : ApiController 
{ 
    // GET: api/Users <- works great 
    public IQueryable<User> GetUsers() {} 

    // **Not sure if this one is correct!** 
    public IHttpActionResult GetUsersChart([FromURI]int id) 
    { 
     return Ok(repo.GetUsersChart(id)); 
    } 
} 

我想了解如何在C#代碼中使用HttpWebRequest調用我的圖表生成api?

事情是這樣的:

HttpWebRequest createChartRequest = 
WebRequest.Create(String.Format("{0}/api/Users/Chart/?id={1}", ServerUrl, 1)); 

會給我HTTP 500錯誤。

更新:

這裏是路由配置:

 config.Routes.MapHttpRoute(
      name: "DefaultApi", 
      routeTemplate: "api/{controller}/{id}", 
      defaults: new { id = RouteParameter.Optional } 
+0

根據要求更新。 – inside 2015-03-02 20:07:16

+0

只是一個完整性檢查 - 您的變量ServerUrl不會有正確的尾部斜槓('/')? – pnm 2015-03-02 20:08:54

+0

nope,這一切都很好,我試了其他的GetUsers API,它工作正常。 – inside 2015-03-02 20:10:27

回答

0

形成500的響應代碼意味着你必須在你的API採取行動的一些錯誤。它與你的路線或你如何請求無關。如果這是在開發中,請檢查瀏覽器的開發人員工具中的響應,並且應該能夠看到那裏的實際服務器錯誤的描述。如果這是在生產中,您需要以某種方式記錄錯誤,例如使用ELMAH,以便查看造成問題的原因。