我有这个简单的锚标签。
<a asp-area="Admin" asp-action="Create" asp-controller="Users" class="btn btn-default">Create</a>
Run Code Online (Sandbox Code Playgroud)
代码结构如下。
生成的标记如下
<a class="btn btn-default" href="/Admin/Users">Create</a>
Run Code Online (Sandbox Code Playgroud)
它缺少操作(创建),但其余标签似乎工作正常。
路由设置如下
app.UseMvc(
routes =>
{
routes.MapRoute(name: "default", template: "{controller=Home}/{action=Index}/{id?}");
routes.MapRoute(
name: "areaRoute",
template: "{area:exists}/controller=Admin/{action=Index}/{id?}");
});
Run Code Online (Sandbox Code Playgroud)
这个问题的解决方法是复制
~/Views/_ViewImports.cshtml到~/AreaName/Views/_ViewImports.cshtml这是因为 Tag helper 可用,因为
@addTagHelper它在_ViewImports.cshtml page.一旦你这样做了,你的标签助手智能感知和你的标签助手代码一样工作!
希望这可以帮助。谢谢
参考:[已解决] 标签助手语法不适用于 ASP.NET Core 中的区域视图 - DotNetFunda.com
顺序很重要...将区域路由放在默认路由之上。
routes.MapRoute(
name: "adminDefault",
template: "{area:exists}/{controller=Home}/{action=Index}/{id?}");
//catchall
routes.MapRoute(
name: "default",
template: "{controller=Home}/{action=Index}/{id?}");
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7716 次 |
| 最近记录: |