asp.net core中,生成一个路由连接的方法如下,
比如对应的是Group控制器下面的名为Index的Action,这样写就可以
<a asp-controller="group" asp-action="Index">首页</a>如果是admin子区域的Group控制器下面的名为Index的Action,那么就这样写
<a asp-area="Admin" asp-controller="group" asp-action="Index">首页</a>如果需要加参数的话,就需要注意了,asp.net core生成带参数的链接过于简单,但是目前文档过于少,导致很多人不知道怎么使用。
比如下面这个Group控制器中的Action
public async Task<IActionResult> GetGroupAuthorizes(string groupId)生成带有groupId参数的链接要这样写
<a asp-controller="group" asp-action="GetGroupAuthorizes" asp-route-GroupId="@group.objectId">修改</a>注意,asp-route-{参数}=""这样的格式来写。但是这样生成的链接,如果是使用默认的路由设置是下面这个样子
http://localhost:5000/Admin/group/GetGroupAuthorizes/?groupId=6448dbf2-b96a-4262-bd1f-f21a8d6c2d7d如果想让链接看起来更美观的话,比如像下面这个样子
http://localhost:5000/Admin/group/GetGroupAuthorizes/6448dbf2-b96a-4262-bd1f-f21a8d6c2d7d就需要高级点的asp.net core特性,自定义模型绑定
原来的Action代码改为
public async Task<IActionResult> GetGroupAuthorizes([ModelBinder(Name = "id")]string groupId)这样的话,Action参数groupId就通过自定义设置绑定了id这个参数,然后asp.net core生成的链接就变成
http://localhost:5000/Admin/group/GetGroupAuthorizes/6448dbf2-b96a-4262-bd1f-f21a8d6c2d7d
本文介绍如何在ASP.NET Core中生成不同类型的路由链接,包括基本的无参链接、带参数的链接以及如何通过自定义模型绑定使链接更加简洁美观。

873

被折叠的 条评论
为什么被折叠?



