asp.net mvc:如何进行图像映射?

Zac*_*ott 2 asp.net-mvc imagemap actionlink

如何在ASP.NET MVC中构造图像映射?对于参考:

<map id='headerMap'>
    <area shape='rect' href="Default.aspx" coords='300,18,673,109' />
</map>
Run Code Online (Sandbox Code Playgroud)

马库斯(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>
Run Code Online (Sandbox Code Playgroud)

抱歉,这是多余的。我的研究表明,这可能是版本2的mvc答案。寻找类似于Html.ActionLink的东西(如果存在)。显然,我可以按名称引用路由并使用该Url.RouteUrl发送参数,但这是否是处理它的实际方法?

谢谢

Cha*_*ino 5

您必须自己创建HTML ...使用以下方法查看经典asp.net中呈现的html:

<map id='headerMap'>
    <area shape='rect' href="Default.aspx" coords='300,18,673,109' />
</map>
Run Code Online (Sandbox Code Playgroud)

然后在自己的asp.net mvc视图中模拟,用您的Url.RouteUrl调用替换地图的任何href。

例如

<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">
Run Code Online (Sandbox Code Playgroud)

看一下不同的Url.RouteUrl()重载和/或UrlHelper方法,看看哪种最适合您的情况。

解决了这些问题后,我的建议是将您区域链接的创建封装到HtmlHelper扩展中。