扩展MVC Api控制器名称

时间:2015-03-02 20:02:04

标签: c# asp.net asp.net-mvc asp.net-web-api asp.net-web-api2

现在我有两个控制器,一个用于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));
    }
}

我试图了解如何使用HttpWebRequest在C#代码中调用我的Charts生成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 }

1 个答案:

答案 0 :(得分:0)

响应代码500意味着您的API操作中存在一些错误。它与您的路线或您的请求方式无关。如果正在开发中,请在浏览器的开发人员工具中检查响应,您应该能够在那里看到实际服务器错误的描述。如果这是在生产中,您需要以某种方式记录错误,例如使用ELMAH,以便您可以看到导致问题的原因。