【发布时间】:2016-04-17 01:46:37
【问题描述】:
我有一个如下所示的 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 Template Syntax 与 Kendo Grid ClientTemplate 列一起使用:
columns.Bound(c => c.Id).ClientTemplate(
"<a href='" +
Url.Action("UserDetails", "Admin") +
"/#= Id #'" +
">Details</a>"
);
每一行的链接最终如下所示: '本地主机:9000/123' /admin/users/detail 完全被忽略了...
这是我尝试在 AdminController 中调用的方法的确切声明:
// GET: Users/Details/5
[Route("users/details/{id}")]
public async Task<IActionResult> UserDetails(string id)
{
}
【问题讨论】:
标签: c# asp.net-core asp.net-core-mvc asp.net-core-routing