我有一个如下所示的 AdminController:
AdminController [Route("admin")]
Index() (landing page for all administrative content)
UserIndex() - [Route("users")]
UserDetails() - [Route("users/details/{id}")]
RoleIndex() - [Route("roles")]
RoleDetails() - [Route("roles/details/{id}")]
这些等同于以下 URL 模式:
管理员/用户
管理员/用户/详细信息/1
但是,如果我尝试在我看来执行以下操作,则它不起作用:
Url.Action("UserDetail", "Admin")
这不应该足够聪明地输出:'/admin/users/details'吗?
它只有在我这样做时才有效,Url.Action("Index", "Admin")
因为它没有路由标签。
更新:
我正在尝试将Kendo 模板语法与 Kendo Grid ClientTemplate 列一起使用:
columns.Bound(c => c.Id).ClientTemplate(
"<a href='" +
Url.Action("UserDetails", "Admin") +
"/#= Id #'" +
">Details</a>"
);
每行的链接最终如下所示: 'localhost:9000/123' /admin/users/detail 完全被忽略...
这是我试图在 AdminController 中调用的方法的确切声明:
// GET: Users/Details/5
[Route("users/details/{id}")]
public async Task<IActionResult> UserDetails(string id)
{
}