2011-02-08 3 views
17

Возможно ли использовать теги HTML в linkText из Html.ActionLink? Например, если бы я хотел смелую часть текста ссылки я хотел бы попробовать что-то похожее на это:Использование HTML-тегов внутри linkText of Html.ActionLink

<%= Html.ActionLink("Some <b>bold</b> text", "Index")%> 

, но это просто выводит

Some <b>bold</b> text 

Я знаю, что я мог бы сделать это, используя якорный тэг и установление URL-адреса с помощью Url.Action, но я просто хотел знать, возможно ли это.

+0

Возможный дубликат [Ввод HTML внутри Html.ActionLink(), плюс текст ссылки?] (Http://stackoverflow.com/questions/1974980/putting-html-inside-html-actionlink-plus-no-link -text) – KyleMit

ответ

7

Нет; это невозможно.
Вам необходимо вручную написать тег <a>.

+0

Спасибо. Я просто хотел убедиться, прежде чем вручную писать теги –

+1

. Через 3 года это все еще невозможно? – Givi

+5

Через 4 года все еще невозможно? –

0

Это невозможно, но вы можете создать HtmlHelper для этого, см. here или использовать Url.Action вместо того, что я вам порекомендую.

31

HTML-код Html.ActionLink HTML кодирует текст ссылки, который мешает вам вставлять HTML в текст ссылки.

По этой же причине вы не можете использовать Html.ActionLink и передать тег, чтобы сделать изображение гиперссылкой.

Для базового стайлинга ссылки, я бы рекомендовал использовать один из Html.ActionLink перегрузок, чтобы задать стиль CSS с помощью анонимного синтаксиса объекта, как так ...

@Html.ActionLink("Please Edit Me", "Edit", null, new { style="font-weight:bold;" }) 

К сожалению, это относится и смелым на весь текст гиперссылки, когда то, что вы хотите, - это просто слово Edit, чтобы быть жирным. В этом случае я хотел бы сделать это ...

<a href="@Url.Action("Edit")">Please <b>Edit</b> Me</a> 

... или это ...

<a href="@Url.Action("Edit")">Please <span style="font-weight:bold;">Edit</span> Me</a> 
+0

Если Edit - это действие другого контроллера, как мне его ссылаться? Например, у меня есть два контроллера: «Главная» и «Учетная запись». Если я сейчас просматриваю страницу входа в систему контроллера учетной записи, и я набираю '@ Url.Action (« Главная »), то он отображает:' Account/Home'. Я бы хотел, чтобы это отображалось как «Главная/Индекс», где «Главная» - это контроллер, а «Индекс» - это действие. Я пробовал делать '/ Home/Index'. – crush

+0

Я нашел ответ на свой вопрос, чтобы использовать второй параметр метода @ @ Url.Action (string, string). Второй параметр - это имя контроллера, для которого вы хотите настроить таргетинг. – crush

+1

Метод @ Url.Action является наиболее гибким вариантом, поскольку он позволяет вам манипулировать якорной меткой далее –

0

Это работает для меня:

@Html.Raw(@Html.ActionLink("XXX", "Index", new { }, new { @class = "FormBtn" }).ToHtmlString().Replace("XXX","<u>Back to List</u>")) 

По существу использовать ActionLink для создания html с заполнителем для того, что вы хотите заменить («XXX»), затем преобразуйте его в HTML-строку, замените местозаполнитель своей разметкой, выведите строку как HTML.Raw.

Смежные вопросы