Заключение в кавычки этого из памяти, таким образом, это не могло бы быть точно.
я не знаю то, что f*ck это делает, но это, кажется, работает так, я не касаюсь его.
забавной вещью является способ, которым я узнал об этом. Этот комментарий был встроен в приложение доступа, которое некоторый разработчик в нашей компании записал для клиента и распределил в MDB. К сожалению, код, который ", кажется, работает" бомбивший и Доступ покорно, открыл окно кода с отладчиком, выделяющим строку прямо ниже комментария. Это точно не внушало доверие с тем клиентом.
Основная причина, по которой вы не используете теги
напрямую, заключается в том, что вы не хотите жестко кодировать URL-адреса в своем приложении. Метод Html.ActionLink
абстрагируется от создания URL, и вы указываете контроллер, действие и другие параметры.
Таким образом, в основном, две строки, которые вы разместили в своем вопросе, на самом деле не эквивалентны . Вам следует подумать о добавлении кода генерации динамического URL в тег
, чтобы сделать их функционально эквивалентными. Кроме того, если вы выводите HTML напрямую, вам придется быть предельно осторожным с кодировкой HTML. Html.ActionLink
сделает эту работу за вас.
Допустим, у вас есть много параметров запроса в URL-адресе, например
site.com?a=1&b=2&c=3&d=4&e=1&f=1
<%= Html.ActionLink("Click me", "ActionName", null, new {a=1, b=2, c=3, d=4, e=1, f=1}) %>
Ссылка действия может построить это URL для вас. Если бы у вас не было помощника, вам пришлось бы вручную добавлять ключи и vlaues к URL-адресу. И это настоящая боль. Вспомогательная функция URL также может сопоставлять маршруты URL.
На самом деле, нет большой разницы между
<a href="ActionName" target="_blank">Click Me</a>
и
<%= Html.ActionLink("Click me", "ActionName", null, new {target="blank"}) %>
, потому что в обоих случаях вы жестко кодируете (URL в первом, имя действия во втором).
Вот почему я создаю специальные вспомогательные методы для ссылок , а затем я использую
<%= Html.LinkSomeAction("Click me") %>
Таким образом я уверен, что когда я передумаю, какое имя должно иметь действие, я буду в порядке; Кроме того, мне никогда не придется беспокоиться о неправильном вводе имен действий или ссылок.
Решение, предложенное mxmissile, тоже хорошее.
Еще лучше, используйте MvcContrib и избавьтесь от подверженных ошибкам «волшебных строк» и замените их лямбдами.
<%= Html.ActionLink<MyController>(x => x.ActionName() ,"Click me",new {target="blank"}) %>