【发布时间】:2018-11-04 00:55:58
【问题描述】:
因为我创建了“BaseController”,所以我遇到了路由问题。 我只使用 4 种方法名称 GET、POST、PUT、DELETE,从前端进行最简单的调用。 所以,当我有这个控制器时:
[RoutePrefix("api/Router")]
public class RouterController : WifiBaseController
{
UnitOfWork unitOfWork = new UnitOfWork();
[JwtAuthentication]
[HttpGet]
[Route("")]
public List<RouterDTO> Get()
{
List<router> routerx = unitOfWork.RouterRepository.Get(r => r.IsDeleted == false).ToList();
List<RouterDTO> routerDTO = Mapper.Map<List<RouterDTO>>(routerx);
foreach (var router in routerDTO.Where(x => x.Password != ""))
{
router.Password = null;
}
return routerDTO;
}
[HttpGet]
[JwtAuthentication]
[Route("{latitude}/{longitude}")]
public List<RouterDTO> Get(double latitude, double longitude)
{
List<RouterDTO> routersDTO = new List<RouterDTO>();
List<router> routers = new List<router>();
var myLocation = GPSCalculation.CreatePoint(latitude, longitude);
routers = unitOfWork.RouterRepository.Get(x => x.Location.Location.Distance(myLocation) < 2000 && x.IsDeleted == false).ToList();
Mapper.Map(routers, routersDTO);
foreach (var router in routersDTO.Where(x => x.Password != ""))
{
router.Password = "";
}
return routersDTO;
}
我打了这个电话:
http://localhost:50919/api/Router?latitude=46.767&longitude=23.60
首先调用它的方法...为什么?
如果我注释第一个方法,API 会返回:
405 Method Not Allowed(请求的资源不支持http方法'GET')
【问题讨论】:
标签: c# asp.net-mvc asp.net-web-api asp.net-web-api-routing