微软MVC,剃须刀时,Visual Studio 2013
我可以创建使用这两种方法2链接。 是否有使用Html.ActionLink方法,因为我看不到任何什么好处?
<a href="/Review/MyReviews">My Reviews</a>
@Html.ActionLink(linkText:="My Reviews", controllerName:="Review", actionName:="MyReviews")
谢谢,约翰
微软MVC,剃须刀时,Visual Studio 2013
我可以创建使用这两种方法2链接。 是否有使用Html.ActionLink方法,因为我看不到任何什么好处?
<a href="/Review/MyReviews">My Reviews</a>
@Html.ActionLink(linkText:="My Reviews", controllerName:="Review", actionName:="MyReviews")
谢谢,约翰
是。 它的使用方法非常有用Url.Action()
的URL生成和Html.ActionLink()
因为这将确保产生从动作和控制器的名称正确相对URL生成锚标记。
在某些情况下,当应用在内蒙古目录托管我们的CSS 样式表和js文件不加载因错误的URL。
考虑情况下,您正在使用的锚标记与你在第一页的方法和View是像查看嵌套子目录- >首页- >局部模板- > _Index.cshtml。
现在,如果你写的锚标记是这样的:
<a href="/About/Index">About</a>
现在我们说去一个目录当年关于控制器和索引操作,但在当前情况下正确的URL将是:
<a href="../About/Index">About</a>
而下面将确保地址写锚标记生成正确的:
<a href="@Url.Action("Index","About")">About</a>
要么:
Html.ActionLink(linkText:="About", controllerName:="About", actionName:="Index")
使用纯硬编码的网址会导致想在这个问题SO帖子 。
OP面临的问题Ajax调用没有得到,因为错误的URL的行动,并使用@Url.Action()
帮助解决了这个问题,因为它可以确保该URL生成正确的。
你也应该阅读本内容丰富的文章,使更多清晰的认识
与@Ehsan完全同意:ActionLink的助手可以移动应用程序的Web服务器(相对路径)时,为您节省了很多麻烦。
此外,ActionLink的比较好,因为如果你后者改变你的控制器或者动作名称,编译器应该警告你。
在另一边,“A HREF ...”是不能够看到错误发生运行时错误之前。
+1尝试使用MVC佣工,就像你可以因为你可以利用生成URL:
1)利用ASP.NET MVC的传出URL生成从路线模板。 所以,即使你发生怎样的改变/版本的路径模板通过助手生成的URL能够正确重新生成这些URL。 因此,链接不破。
2)他们有很好的重载这对提高可读性和更清洁,以及例如,使用匿名类型路由值和HTML特性等,而不是丑陋concatinations
3)您可以在脚本中包括他们也可以作为服务器标记,以便产生相同的链接跨越基于URL生成方案。