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

Foi útil?

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top