我有一个.Net Core 2 Api。一些控制器(UserController,CarController)。如果我启动Api,则可以浏览到UserController,它向我显示了一个用户列表,太完美了!当我浏览到CarController时,它给我一个错误:找不到此localhost页面找不到该网址的网页:http:// localhost:57880 / Car在Google上搜索localhost 57880 Car HTTP错误404每个控制器都有一个路由名称。因此,我将CarController的路由名称更改为“ DummyTest”。我重新启动了API,浏览到DummyTest,它起作用了!用户仍然可以正常工作。为什么?...我似乎无法弄清楚“ Car”为何提供404且具有不同路线的同一控制器(DummyTest)起作用。我在StackOverflow上发现了此问题:ASP.NET Core找不到此localhost页,但这不是我的解决方法。编辑这是给出404的控制器的代码:[Route("Car")]public class CarController : Controller{ private readonly ICarService _carService; public CarController(ICarService carService) { _carService= carService; } [HttpGet] public List<Car> Get() { return _carService.GetCars().ToList(); }}这是起作用的控制器的代码:[Route("User")]public class UserController : Controller{ private readonly IUserService _userService; public UserController(IUserService userService) { _userService = userService; } [HttpGet] public List<User> Get() { return _userService.GetUsers().ToList(); }}
2 回答
阿波罗的战车
TA贡献1862条经验 获得超6个赞
如果不查看代码就很难调试问题,但是我可以提供一些推测。
如果您使用的是基于属性的路由,则可能是您指定的是路由模板,而不是路由名称。
[Route("CarController")]
public class CarController : Controller
{
public IActionResult Index()
{
return View();
}
}
如果由于控制器的命名约定而导航到http:// localhost:xxxxx / Car,这将为您提供404 。
请尝试以下路由模板:
[Route("Car")]
public class CarController : Controller
{
public IActionResult Index()
{
return View();
}
}
心有法竹
TA贡献1866条经验 获得超5个赞
这是发生在我身上的原因,因为我已经将.net核心1 Razor Page复制到了.net核心2.2项目中。我在剃刀页面上添加了@page声明,一切正常。
- 2 回答
- 0 关注
- 305 浏览
添加回答
举报
0/150
提交
取消