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 },...) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net-mvc – 为IIS托管的.SVC文件配置XML-RPC行为?
- asp.net-mvc – 如何在主机上运行ASP.Net MVC应用程序?
- ASP.net Core中正确的标记用法是什么? TagHelpers与HTML H
- asp.net – Trace.Warn不在MVC中输出跟踪消息
- [译]ASP.NET Core 2.0 网址重定向
- 哪个表现最好:经典ASP,ASP.NET WebForms还是ASP.NET MVC?
- asp.net-mvc – ICommandHandler / IQueryHandler with asy
- asp.net – InvalidOperationException:在程序集上找不到“
- asp.net-mvc – 在ASP.NET MVC的查询字符串中使用DateTime创
- asp.net-mvc – asp.net mvc多语言urls /路由