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

Ric*_*olo 14 asp.net-mvc razor asp.net-mvc-3

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

<a href="@href("~/SubPage")">Subpage</a>.
Run Code Online (Sandbox Code Playgroud)

剃刀引擎取代@href("~/SubPage")/Subpage.

这样做有什么好处呢

<a href="/SubPage">Subpage</a>.
Run Code Online (Sandbox Code Playgroud)

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

Mar*_*arc 24

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

www.myapp.com/subfolder/SubPage
Run Code Online (Sandbox Code Playgroud)

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

www.myapp.com/SubPage
Run Code Online (Sandbox Code Playgroud)

多数民众赞成因为~Razor将替换为您的应用程序根目录.

  • 不,我不这么认为.但是你失去了灵活性 - 你永远无法在没有搜索你写下这个名字的整个项目的情况下更改子文件夹的名称.我非常不喜欢这样做. (6认同)