我很可能没有明白这一点,但我真的无法弄清楚ASP.NET MVC的HTML帮助程序如何帮助我.这是一个样本: -
HTML:
Click Me
HTML助手:
<%= Html.ActionLink("Click me", "ActionName", null, new {target="blank"}) %>
我的眼睛更容易阅读HTML,使用HTML帮助程序似乎是违反直觉的.
看看以下参数:
很多人(甚至新手)都知道如何阅读HTML.HTML Helper语法很容易混淆.
在许多情况下,您需要更多地键入编写HTML"帮助器",然后您需要编写实际的HTML.
HTML Helper无论如何都会发出真正的HTML,为什么不直接编写HTML呢?
编写HTML可以让您更好地控制语法和标准.您可以使其符合您想要的任何HTML标准.
是否有任何特殊的令人信服的理由,我还没有理解(因为我在MVC中自学成才,可能存在差距)应该让我更喜欢HTML助手?
或者他们只是编码噪音?
不直接使用标记的主要原因是您不希望在应用程序中对URL进行硬编码.该
Html.ActionLink
方法将抽象出URL生成,您将指定控制器,操作和其他参数.
所以,基本上,你在问题中发布的两条线并不是真正等效的.您应该考虑将动态URL生成代码添加到标记,以使它们在功能上等效.除此之外,如果你直接输出HTML,你必须非常小心HTML编码的东西.
Html.ActionLink
也会为你做这份工作.
假设您在URL中有许多查询参数,例如
site.com?a=1&b=2&c=3&d=4&e=1&f=1
<%= Html.ActionLink("Click me", "ActionName", null, new {a=1, b=2, c=3, d=4, e=1, f=1}) %>
actionlink可以为您构建此URL.如果您没有帮助程序,则必须手动将密钥和值添加到URL.这真是一种痛苦.URL帮助程序也可以匹配URL路由.
更好的是,使用MvcContrib并抛弃容易出错的"魔术字符串"并用lambdas替换它们.
<%= Html.ActionLink(x => x.ActionName() ,"Click me",new {target="blank"}) %>