这是我遇到的一个有趣的问题。我的控制器就像
public HomeController()
{
TaskRepo = new ArchiveTasksRepository();
}
// GET: /<controller>/
public IActionResult Index()
{
return View();
}
[Route("tasks/all/count")]
[HttpGet]
[ResponseCache(Location = ResponseCacheLocation.None, NoStore = true)]
public ActionResult NumberArchiveTasks()
{
return Json(TaskRepo.GetTaskCount());
}
我有一堆其他端点,例如NumberArchiveTasks
端点。这是我在教程后编写的ASP.NET核心应用程序。当我在本地运行应用程序时,所有端点都有效。但是,当我在远程服务器上部署到IIS时,Index
可以正常运行而其他服务器则无法运行;他们404.我不确定它是HttpGet
属性,我使用的是ActionResult
而不是IActionResult
,或者它究竟是什么可能。也许别的东西。知道如何解决这个问题,或者我应该猜测并检查它是否有效?
答案 0 :(得分:0)
我相信你的默认路线会匹配/ home / numberarchivetasks。你的路由属性不是以斜杠开头所以它是相对的,这意味着它可能是/ home / tasks / all / count - 你试过吗?
我建议你将你的动作放在一个TasksController中(带有属性[Route(“[controller]”)]),然后动作可以有一个相对的路径。