【发布时间】:2017-09-26 12:34:53
【问题描述】:
我使用MySQL DB 在visual studio 2015 中创建了一个WEB API。我有三个GET 方法。一个是给出所有数据,第二个是根据ID 给出结果,第三个是应该根据序列号给出结果。前两种方法效果很好,但最后一种方法不行。我还在解决方案中添加了多个路由。下面是我的代码
WebApiConfig
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
config.Routes.MapHttpRoute(
name: "GetByMsn",
routeTemplate: "api/{controller}/{action}/{msn}",
defaults: null,
constraints: new { msn = @"^[a-z]+$" }
控制器
public HttpResponseMessage Get()
{
try
{
return Request.CreateResponse(HttpStatusCode.Found, mEntities.meters_info_dev.ToList());
}
catch (Exception ex)
{
return Request.CreateErrorResponse(HttpStatusCode.NotFound, ex);
}
}
// GET by ID
public HttpResponseMessage GetByID(int id)
{
try
{
return Request.CreateResponse(HttpStatusCode.Found, mEntities.meters_info_dev.SingleOrDefault(m => m.id == id));
}
catch (Exception ex)
{
return Request.CreateErrorResponse(HttpStatusCode.NotFound, ex);
}
}
// GET by serial number
public HttpResponseMessage GetByMsn(string msn)
{
try
{
return Request.CreateResponse(HttpStatusCode.Found, mEntities.meters_info_dev.SingleOrDefault(m=> m.meter_msn == msn));
}
catch
{
return Request.CreateErrorResponse(HttpStatusCode.NotFound, "No Data found");
}
}
GetByMsn 是不工作的那个。我试图改变路线,但结果仍然相同。给定的solution 1 和solution 2 对我不起作用。
任何帮助将不胜感激。
【问题讨论】:
标签: mysql asp.net-mvc rest visual-studio-2015 asp.net-web-api2