Вопрос

Как в ASP.NET MVC мне построить карту изображений?Для справки:

<map id='headerMap'>
    <area shape='rect' href="Default.aspx" coords='300,18,673,109' />
</map>

Один ответ на ответ на несвязанный вопрос от Маркус есть что-то похожее:

<a href="<%= Url.RouteUrl("MyRoute", new { param1 = "bla", param2 = 5 }) %>">
   put in <span>whatever</span> you want, also <img src="a.gif" alt="images" />.
</a>

Извините, если это лишнее.Мое исследование показало, что это может быть ответ MVC версии 2.Ищете что-то похожее на Html.ActionLink, если оно существует.Очевидно, я мог бы ссылаться на маршрут по имени и отправлять параметры, используя этот Url.RouteUrl, но является ли это де-факто способом его обработки?

Спасибо

Это было полезно?

Решение

Вам придется создать HTML самостоятельно...взгляните на HTML, который отображается в классическом asp.net, используя:

<map id='headerMap'>
    <area shape='rect' href="Default.aspx" coords='300,18,673,109' />
</map>

Затем сымитируйте это в своем собственном представлении asp.net mvc, заменив любые hrefs для карты вызовами Url.RouteUrl.

Например.

<map id="mymap" name="mymap">
    <area href="<%= Url.RouteUrl("MyRoute", new { param1 = "foo", param2 = 5 }) %>" alt="HTML and CSS Reference" shape="rect" coords="5,5,95,195">
    <area href="<%= Url.RouteUrl("MyRoute", new { param1 = "bar", param2 = 3 }) %>" alt="Design Guide" shape="rect" coords="105,5,195,195">
</map>
<image src="sitemap.gif" alt="Site map" "usemap"="#mymap" width="300" height="200">

Взгляните на различные перегрузки Url.RouteUrl() и/или методы UrlHelper, чтобы определить, какой из них лучше всего подходит для вашей ситуации.

После того, как вы разобрались с этим, я бы порекомендовал инкапсулировать создание ссылок на ваши области в расширение HtmlHelper.

Другие советы

Я смог заменить следующее, и все работало нормально:

html-пример:

<map id='headerMap'>
   <area shape='rect' href="Default.aspx" coords='300,18,673,109' />
</map>

пример mvc4

<map id='headerMap'>
    <area shape="rect" href=@Url.Action("Default", "Home") coords="300,18,673,109">
</map>

Другой вариант — создать карту изображений с помощью C#.По следующей ссылке представлены некоторые вспомогательные методы, которые создают карту изображения из кода вашего представления/контроллера:

http://www.avantprime.com/articles/view-article/9/asp.net-mvc-image-map-helper

Редактировать: Пытаться http://web.archive.org/web/20110728032820/http://www.avantprime.com/articles/view-article/9/asp.net-mvc-image-map-helper для архивной версии исходной ссылки.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top