我想编写一个HtmlHelper来渲染带有预设值的ActionLink,例如:
<%=Html.PageLink("Page 1", "page-slug");%>
其中PageLink
是一个调用ActionLink
的函数,已知Action和Controller,例如"Index"和"Page"。
由于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>
你的扩展方法可能很短小可爱,但它会增加另一个未经测试的故障点,并且对新员工提出了一个新的学习要求,而没有添加任何真正的价值。把它看作是设计一个复杂系统。除非它增加了可靠性(不是),可读性(有点,一旦你阅读了更多文档),速度(没有)或并发性(没有),否则为什么要添加另一个动态部分。
Url.Action
的问题 - https://dev59.com/eXI-5IYBdhLWcg3wED9V - brichins