asp.net MVC:Как изобразить карту?
-
20-09-2019 - |
Вопрос
Как в 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 для архивной версии исходной ссылки.