Преимущества замены бритвы (@href)
В документации ASP.NET MVC говорится, что вы должны сделать что-то подобное, когда есть ссылка в представлении
<a href="@href("~/SubPage")">Subpage</a>.
Бритвенный двигатель заменяет @href("~/SubPage")
на /Subpage
.
В чем преимущество этого сделать вместо этого
<a href="/SubPage">Subpage</a>.
В таких случаях, как это и в других (например, создание формы), зачем использовать движок бритвы вместо того, чтобы писать прямо то, что вы хотите. Я думаю, что быстрее на стороне сервера, чтобы напечатать что-то прямо, что позволяет движку его генерировать.
Ответы
Ответ 1
Если ваше приложение работает во вложенной папке, Razor @href создаст правильную ссылку следующим образом:
www.myapp.com/subfolder/SubPage
Если вы напишете его самостоятельно, ваша ссылка будет такой и не будет работать:
www.myapp.com/SubPage
Thats, потому что ~
будет заменен вашим корнем приложения Razor.
Ответ 2
Метод ActionLink
не может принимать HTML
.
Вам нужно сделать обычный тег <a>
и использовать @Url.Action(...)
для href
.
<a href="@Url.Action("ActionName", "ControllerName")">Link Text</a>.
Ответ 3
Я просто пишу
<a href="SubPage">Subpage</a>
Я не могу реализовать какой-либо отрицательный запас