次のような 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 Grid ClientTemplate 列でKendo Template Syntaxを使用しようとしています:
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)
{
}