剃须刀更换的优点(@href)

时间:2012-02-23 04:42:07

标签: asp.net-mvc asp.net-mvc-3 razor

在ASP.NET MVC的文档中说,当在视图中有链接时,你应该做这样的事情

<a href="@href("~/SubPage")">Subpage</a>.

剃刀引擎将@href("~/SubPage")替换为/Subpage

这样做有什么好处呢

<a href="/SubPage">Subpage</a>.

在这种情况下和其他情况下(如创建表单)为什么要使用剃刀引擎而不是直接写出你想要的东西。我认为在服务器端更快地打印一些让引擎生成它的东西。

3 个答案:

答案 0 :(得分:24)

如果您的应用程序在子文件夹中运行,Razor @href将创建正确的链接:

www.myapp.com/subfolder/SubPage

如果您自己编写,您的链接将是这样的,并且不起作用:

www.myapp.com/SubPage

这是因为Razor会将您的应用程序根替换为~

答案 1 :(得分:2)

ActionLink方法无法HTML

您需要制作一个普通的<a>代码,并对@Url.Action(...)使用href

<a href="@Url.Action("ActionName", "ControllerName")">Link Text</a>.

答案 2 :(得分:0)

我只是写

<a href="SubPage">Subpage</a>

我无法实现任何负面回退