2009-08-31 137 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> 

很抱歉,如果這是多餘的。我的研究表明這可能是一個版本2 mvc的答案。尋找類似於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視圖用你的Url.RouteUrl調用替換地圖的任何hrefs。

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

:)好的,謝謝。 – 2009-09-01 13:46:13

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>