【发布时间】:2020-04-09 01:19:56
【问题描述】:
我希望 url https://localhost:44354/Bills 调用 BillsController.cs 中的 Index 操作。相反,它从 HomeController.cs 调用 Index 操作。如果我使用https://localhost:44354/Bills/Bills,它确实会调用 BillsController 的 Index 操作。
按照我的理解,Bills 应该映射到控制器,并且应该默认为 Index,URL 中没有第二个参数。为了测试,我尝试了https://localhost:44354/Bills/Index,它给出了 404。有人可以解释这种行为吗?它的行为似乎不正确。
我的 Startup.cs 文件中的路由:
app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "{controller=Home}/{action=Index}/{id?}");
});
账单控制器:
public class BillsController : Controller
{
public IActionResult Index()
{
return View();
}
}
我的文件夹结构:
【问题讨论】:
-
您的默认路由映射到
Home控制器,而不是Bills控制器 -
当你调用它时:“localhost:44354/Bills”它试图在你的 HomeController 中找到一个名为“Bills()”的方法。
标签: c# asp.net-core asp.net-core-mvc asp.net-mvc-routing