2015-03-02 108 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,以便查看造成问题的原因。