一个控制器给出“找不到此本地主机页面”

我有一个.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();

    }

}


白猪掌柜的
浏览 313回答 2
2回答

阿波罗的战车

如果不查看代码就很难调试问题,但是我可以提供一些推测。如果您使用的是基于属性的路由,则可能是您指定的是路由模板,而不是路由名称。[Route("CarController")]public class CarController : Controller{&nbsp; &nbsp; public IActionResult Index()&nbsp; &nbsp; {&nbsp; &nbsp; &nbsp; &nbsp; return View();&nbsp; &nbsp; }}如果由于控制器的命名约定而导航到http:// localhost:xxxxx / Car,这将为您提供404 。请尝试以下路由模板:[Route("Car")]public class CarController : Controller{&nbsp; &nbsp; public IActionResult Index()&nbsp; &nbsp; {&nbsp; &nbsp; &nbsp; &nbsp; return View();&nbsp; &nbsp; }}

心有法竹

这是发生在我身上的原因,因为我已经将.net核心1 Razor Page复制到了.net核心2.2项目中。我在剃刀页面上添加了@page声明,一切正常。
打开App,查看更多内容
随时随地看视频慕课网APP