Domanda

Come in ASP.NET MVC costruirei una mappa immagine?Per rif:

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

Una risposta di una risposta a una domanda non correlata di Markus è qualcosa di simile:

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

Scusate se questo è ridondante.La mia ricerca ha indicato che questa potrebbe essere una risposta MVC alla versione 2.Alla ricerca di qualcosa di simile a Html.ActionLink se esiste.Ovviamente, potrei fare riferimento al percorso per nome e inviare i parametri utilizzando quell'Url.RouteUrl, ma è questo il modo di fatto di gestirlo?

Grazie

È stato utile?

Soluzione

Dovrai creare tu stesso l'HTML...dai un'occhiata all'HTML reso nel classico asp.net usando:

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

Quindi imitalo nella tua visualizzazione asp.net mvc sostituendo qualsiasi href per la mappa con le tue chiamate Url.RouteUrl.

Per esempio.

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

Dai un'occhiata ai diversi sovraccarichi Url.RouteUrl() e/o ai metodi UrlHelper per vedere quale si adatta meglio alla tua situazione.

Una volta risolto il problema, il mio consiglio sarebbe di incapsulare la creazione dei collegamenti all'area in un'estensione HtmlHelper.

Altri suggerimenti

Sono stato in grado di sostituire il seguente e ha funzionato bene:

html esempio:

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

esempio mvc4

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

Un'altra opzione è quella di costruire la mappa immagine con C #. Il seguente collegamento fornisce alcuni metodi di supporto che crea una mappa immagine dal codice all'interno della vostra vista / controllore:

http: // www .avantprime.com / articoli / vista-article / 9 / asp.net-MVC-image-map-helper

Modifica: Prova http://web.archive.org/web/20110728032820/http://www.avantprime.com/articles/view-article/9 /asp.net-mvc-image-map-helper per una versione archiviata del link originale.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top