加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc – AttributeRouting ActionLink帮助器渲染查询字符

发布时间:2020-12-16 03:29:35 所属栏目:asp.Net 来源:网络整理
导读:我正在研究我的第一个MVC项目并在我的控制器中使用属性路由.我的一个动作有两个可能的路径路径,我有一个小问题.路线本身正在工作,但生成的actionLinks不符合我的喜好. 路线: [Route("add")] [Route("{parentId:int?}/add")] ActionLink定义: @Html.ActionL
我正在研究我的第一个MVC项目并在我的控制器中使用属性路由.我的一个动作有两个可能的路径路径,我有一个小问题.路线本身正在工作,但生成的actionLinks不符合我的喜好.

路线:

[Route("add")]
    [Route("{parentId:int?}/add")]

ActionLink定义:

@Html.ActionLink("Add Category","Add","Category",new { parentId = @Model.CurrentCategoryId},new { @Class = "btn btn-primary"})

这是有效的,但是当currentCategoryId不为null时,生成的链接是这样的:

/categories/add?parentId=2

但我想看到的(当你手动滚动网址时,它会被拿起)是:

/categories/2/add

无论如何我可以通过actionLink或任何其他MVC魔术实现这一目标吗?

解决方法

尝试:

[Route("add",Order = 2)]
[Route("{parentId:int?}/add",Order = 1)]

这仍然可能不起作用,因为您有一个不需要参数的路由这一事实可能会使路由逻辑短路.另一种选择是命名每条路线,然后明确说明你想要的路线:

[Route("add",Name = "AddCategory")]
[Route("{parentId:int?}/add",Name = "AddCategoryForParentId")]

然后:

@Html.RouteLink("Add Category","AddCategoryForParentId",new { parentId = @Model.CurrentCategoryId },...)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读