MVC - RouteLink и изображение

Мне нужен этот вывод:

<a href="\Catalog\Flooring">
    <img src="http://site.com/dot.jpg" width="100px" height="100px" alt="" />
    <span>Some text here</span>
</a>

с помощью RouteLink, аналогичного:

<%= Html.RouteLink(myFPV.ProductTypeName, "CatalogType", new { controller = "Catalog", action = "Types", group = myFPV.ProductGroupName, type = myFPV.ProductTypeName })%>

Я не могу понять, как добавить теги <img> и <span> (с текстом) внутри тега <a>.

Имеют смысл?

Ответ 1

Первым параметром метода RouteLink является текст ссылки. Но, к сожалению, он автоматически кодируется, поэтому вы не можете отправить символы <, > . (Ну, вы можете, но они будут закодированы.)

Посмотрите эту страницу.

Значения маршрута автоматически кодируются URL. Например, строка "Hello World!" является закодирован в "Hello %20World!".

Отображение ссылок на изображение

К сожалению, вы не можете использовать Html.ActionLink() для рендеринга ссылка на изображение. Поскольку HTML-код html.ActionLink() его текст ссылки автоматически, вы не может передать тег этому метод и ожидаем, что тег будет отображаться как изображение.

Вместо этого вам нужно использовать Url.Action() для генерации правильная ссылка. Вот как вы можете создать ссылку удаления с изображением:

<a href="<%= Url.Action("Delete") %>">
  <img src="../../Content/Delete.png" alt="Delete" style="border:0px" />
</a>

Ответ 2

Я предлагаю использовать Url.RouteUrl.

<a href="@Url.RouteUrl("Default", new { action = "Index", controller = "Department", id = 1 })">
 <img src="http://site.com/dot.jpg" width="100px" height="100px" alt="" />  </a>

Ответ 3

Есть лучший вариант для этого. вы должны попробовать что-то вроде

<a href="@Url.RouteUrl("index-lang")">
  <img src="~/images/logo.png" alt="">
 </a>

где "index-lang" - это имя маршрута в таблице сопоставления маршрутов.