2009-08-31 2 views
1

Как в ASP.NET MVC я бы построил карту изображений? Для иого:asp.net mvc: Как сделать карту?

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

Один ответа ответа несвязанного вопроса по markus нечто подобное:

<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, но является ли это дефактовым способом его обработки?

Благодаря

ответ

4

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

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

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

E.g.

<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.

+0

:) круто спасибо. –

1

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

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

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

3

я смог заменить следующий и он работал нормально:

HTML пример:

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

mvc4 пример

<map id='headerMap'> 
    <area shape="rect" [email protected]("Default", "Home") coords="300,18,673,109"> 
</map> 
Смежные вопросы