asp.net core生成路由连接,请求参数如何获取和模型绑定

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








  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

赫敏璋

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值