Преимущества замены бритвы (@href) - PullRequest
14 голосов
/ 23 февраля 2012

В документации ASP.NET MVC говорится, что вы должны делать что-то подобное, когда есть ссылка в представлении

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

Двигатель бритвы заменяет @href("~/SubPage") на /Subpage.

В чем преимущество такого способа вместо этого

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

В подобных случаях и в других (например, при создании формы) зачем использовать бритвенный движок, а не писать прямо то, что вы хотите. Я думаю, что на стороне сервера быстрее печатать что-то напрямую, что позволяет движку генерировать это.

Ответы [ 3 ]

24 голосов
/ 23 февраля 2012

Если ваше приложение запускается во вложенной папке, Razor @href создаст правильную ссылку, например:

www.myapp.com/subfolder/SubPage

Если вы напишите это самостоятельно, ваша ссылка будет такой и не будет работать:

www.myapp.com/SubPage

Это потому, что ~ будет заменен на корень вашего приложения Razor.

2 голосов
/ 03 января 2014

Метод ActionLink не может принимать HTML.

Вам нужно сделать обычный тег <a> и использовать @Url.Action(...) для href.

<a href="@Url.Action("ActionName", "ControllerName")">Link Text</a>.
0 голосов
/ 02 марта 2013

Я просто пишу

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

Я не могу понять ни одного отрицательного отката

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...