我想编写一个 HtmlHelper 来呈现具有预设值的 ActionLink,例如。
<%=Html.PageLink("Page 1", "page-slug");%>
where是一个使用已知 Action 和 ControllerPageLink
调用的函数,例如。ActionLink
“索引”和“页面”。
由于或类中不存在HtmlHelper
并且UrlHelper
不存在Controller
,我如何从类中获取操作的相对 URL?
更新:鉴于我现在拥有的额外三年积累的经验,这是我的建议:只是使用Html.ActionLink("My Link", new { controller = "Page", slug = "page-slug" })
或更好,
<a href="@Url.Action("ViewPage",
new {
controller = "Page",
slug = "my-page-slug" })">My Link</a>
您的扩展方法可能既可爱又简短,但它增加了另一个未经测试的故障点和对员工的新学习要求,而不会增加任何实际价值。把它想象成设计一个复杂的系统。为什么要添加另一个移动部分,除非它增加了可靠性(否)、可读性(很少,一旦您阅读更多文档)、速度(无)或并发性(无)。