asp.netmvc:Como mapear a imagem?
-
20-09-2019 - |
Pergunta
Como eu construiria um mapa de imagem no ASP.NET MVC?Para referência:
<map id='headerMap'>
<area shape='rect' href="Default.aspx" coords='300,18,673,109' />
</map>
Uma resposta de uma resposta de uma pergunta não relacionada por Marcus é algo semelhante:
<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>
Desculpe se isso é redundante.Minha pesquisa indicou que esta pode ser uma resposta do mvc da versão 2.Procurando por algo semelhante ao Html.ActionLink, se existir.Obviamente, eu poderia referenciar a rota pelo nome e enviar os parâmetros usando esse Url.RouteUrl, mas essa é a maneira padrão de lidar com isso?
Obrigado
Solução
Você terá que criar o HTML sozinho ...dê uma olhada no html que é renderizado no asp.net clássico usando:
<map id='headerMap'>
<area shape='rect' href="Default.aspx" coords='300,18,673,109' />
</map>
Em seguida, imite isso em sua própria visualização asp.net mvc, substituindo qualquer um dos hrefs do mapa por suas chamadas Url.RouteUrl.
Por exemplo.
<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">
Dê uma olhada nas diferentes sobrecargas Url.RouteUrl() e/ou métodos UrlHelper para ver qual deles se adapta melhor à sua situação.
Depois de resolver isso, minha recomendação seria encapsular a criação de seus links de área em uma extensão HtmlHelper.
Outras dicas
Consegui substituir o seguinte e funcionou bem:
Exemplo HTML:
<map id='headerMap'>
<area shape='rect' href="Default.aspx" coords='300,18,673,109' />
</map>
Exemplo MVC4
<map id='headerMap'>
<area shape="rect" href=@Url.Action("Default", "Home") coords="300,18,673,109">
</map>
Outra opção é construir seu mapa de imagem com C#. O link a seguir fornece alguns métodos auxiliares que criam um mapa de imagens do código dentro da sua exibição / controlador:
http://www.avantprime.com/articles/view-article/9/asp.net-mvc-image-map-helper
Editar: Tentar http://web.archive.org/web/20110728032820/http://www.avantprime.com/articles/view-article/9/asp.net-mvc-image-map-helper Para uma versão arquivada do link original.