【发布时间】:2018-09-08 19:03:12
【问题描述】:
我有一个 ASP.NET Core 项目,其中只有一个名为 Data 的区域。默认的Home 控制器仍然不在任何区域。
问题
项目中Data区域的链接不起作用。路由工作正常。
如果我手动输入链接 localhost/Data,我会得到控制器 Home 区域 Data 的正确操作 Index。所以路由肯定有效。
但是,<a asp-area="Data" asp-controller="Home" asp-action="Index">Data</a> 被评估为链接 localhost/?area=Data,它不起作用,实际上应该是 localhost/Data。
Data 区域内的链接也未正确评估。 localhost/Data/Controller 应该是 localhost/Controller。再次手动输入链接工作正常。
配置
到目前为止,我如何配置项目以尝试使链接正常工作: - 路线添加如下
app.UseMvc(routes =>
{
// Default Route
routes.MapRoute(
name: "default",
template: "{controller=Home}/{action=Index}/{id?}"
);
// Area Route
routes.MapRoute(
name: "areas",
template: "{area:exists}/{controller=Home}/{action=Index}/{id?}"
);
});
-
Data中的所有控制器都具有[Area("Data")]属性。 - 在区域/数据/视图中添加了 TagHelper
_ViewImport.cshtml@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers。
我通常尝试关注official documentation,但似乎没有任何效果。
问题
所以我显然想让链接在不“硬编码”的情况下工作,我想知道为什么预期的行为似乎不起作用。
感谢任何提示。
【问题讨论】:
标签: c# razor asp.net-core razorengine