.NET CORE 不正确的控制器路由
.NET CORE incorrect controller routing
我对控制器操作没有 returning 视图有疑问。他们找错了地方。
我是核心新手,但我尝试在线阅读 material,我看到很多 Global.asax.cs、App_Start 文件等,我我在创建的项目中没有看到。
我的问题是:
我创建了一个项目,实现区域如下:
例如,在 CommonController (其中有 'Area("Common") 区域注释) 我有一个 return 查看方法
public ActionResult RoadMap()
{
return View();
}
随着link的动作:
@Html.ActionLink("Roadmap", "RoadMap", "Common")</span>
但是当我访问 link 时,它会尝试查找 "https://localhost:44325/Home/Common/RoadMap"
我的启动代码包含:
app.UseEndpoints(endpoints =>
{
endpoints.MapControllerRoute(
name: "Account",
pattern: "{area:exists}/{controller=Account}/{action}/{id?}");
endpoints.MapControllerRoute(
name: "Common",
pattern: "{area:exists}/{controller=Common}/{action}/{id?}");
endpoints.MapControllerRoute(
name: "Email",
pattern: "{area:exists}/{controller=Email}/{action}/{id?}");
endpoints.MapControllerRoute(
name: "default",
pattern: "{area=Home}/{controller=Home}/{action=Index}/{id?}");
endpoints.MapRazorPages();
});
我试过在网上寻找资源,但我无所适从。
问题出在此处的操作 link 上。由于你没有提到Area,所以选择了Home的默认路由。
动作link格式应如下所示:
@Html.ActionLink("Link Text", "ActionName", "ControllerName", new { Area = "AreaName" }, new{})
在你的情况下应该是:
@Html.ActionLink("Roadmap", "RoadMap", "Common", new {Area = "Common"}, new{})
我对控制器操作没有 returning 视图有疑问。他们找错了地方。
我是核心新手,但我尝试在线阅读 material,我看到很多 Global.asax.cs、App_Start 文件等,我我在创建的项目中没有看到。
我的问题是:
我创建了一个项目,实现区域如下:
例如,在 CommonController (其中有 'Area("Common") 区域注释) 我有一个 return 查看方法
public ActionResult RoadMap()
{
return View();
}
随着link的动作:
@Html.ActionLink("Roadmap", "RoadMap", "Common")</span>
但是当我访问 link 时,它会尝试查找 "https://localhost:44325/Home/Common/RoadMap"
我的启动代码包含:
app.UseEndpoints(endpoints =>
{
endpoints.MapControllerRoute(
name: "Account",
pattern: "{area:exists}/{controller=Account}/{action}/{id?}");
endpoints.MapControllerRoute(
name: "Common",
pattern: "{area:exists}/{controller=Common}/{action}/{id?}");
endpoints.MapControllerRoute(
name: "Email",
pattern: "{area:exists}/{controller=Email}/{action}/{id?}");
endpoints.MapControllerRoute(
name: "default",
pattern: "{area=Home}/{controller=Home}/{action=Index}/{id?}");
endpoints.MapRazorPages();
});
我试过在网上寻找资源,但我无所适从。
问题出在此处的操作 link 上。由于你没有提到Area,所以选择了Home的默认路由。
动作link格式应如下所示:
@Html.ActionLink("Link Text", "ActionName", "ControllerName", new { Area = "AreaName" }, new{})
在你的情况下应该是:
@Html.ActionLink("Roadmap", "RoadMap", "Common", new {Area = "Common"}, new{})