HTML. ActionLink как кнопка или изображение, не ссылка

Мой rails_helper пропустил это:

CarrierWave.configure do |config|
  config.root              = Rails.root.join('spec/fixtures')
  config.cache_only        = true
  config.enable_processing = false
  config.base_path         = "/"
end
321
задан Ryan Lundy 10 October 2011 в 13:24
поделиться

5 ответов

Последний ответ, но Вы могли просто сохранить это простым и применить класс CSS к объекту htmlAttributes.

<%= Html.ActionLink("Button Name", "Index", null, new { @class="classname" }) %>

и затем создают класс в Вашей таблице стилей

a.classname
{
    background: url(../Images/image.gif) no-repeat top left;
     display: block;
     width: 150px;
     height: 150px;
     text-indent: -9999px; /* hides the link text */
}
325
ответ дан Mark 23 November 2019 в 00:56
поделиться

Сделайте то, что Mehrdad заявляет - или используйте помощника URL от HtmlHelper, дополнительный метод как Stephen Walther описывает здесь , и сделайте свой собственный дополнительный метод, который может использоваться для рендеринга всех ссылок.

Тогда будет легко представить все ссылки как кнопки/привязки или какой бы ни Вы предпочитаете - и, самое главное, можно передумать позже, когда Вы узнаете фактическое предпочтение некоторого другого способа сделать ссылки.

4
ответ дан mookid8000 23 November 2019 в 00:56
поделиться

Вы не можете сделать этого с Html.ActionLink. Необходимо использовать Url.RouteUrl и использовать URL для построения элемента, который Вы хотите.

12
ответ дан Ryan Lundy 23 November 2019 в 00:56
поделиться

Еще более поздний ответ, но я только что столкнулся с аналогичной проблемой и в итоге написал свое собственное расширение HtmlHelper для ссылки на изображение .

Вы можете найти его реализацию в моем блоге по ссылке выше.

Только что добавлено на случай, если кто-то выследит реализацию.

8
ответ дан 23 November 2019 в 00:56
поделиться

Мне нравится использовать Url.Action () и Url.Content () следующим образом:

<a href='@Url.Action("MyAction", "MyController")'>
    <img src='@Url.Content("~/Content/Images/MyLinkImage.png")' />
</a>

Строго говоря, Url.Content нужен только для Путь на самом деле не является частью ответа на ваш вопрос.

Спасибо @BrianLegg за указание на то, что здесь следует использовать новый синтаксис представления Razor. Пример был обновлен соответствующим образом.

348
ответ дан 23 November 2019 в 00:56
поделиться
Другие вопросы по тегам:

Похожие вопросы: