MVC - RouteLink和Image

时间:2009-04-03 04:56:08

标签: asp.net-mvc routes

我想要这个输出:

<a href="\Catalog\Flooring">
    <img src="http://site.com/dot.jpg" width="100px" height="100px" alt="" />
    <span>Some text here</span>
</a>

使用类似于:

的RouteLink
<%= Html.RouteLink(myFPV.ProductTypeName, "CatalogType", new { controller = "Catalog", action = "Types", group = myFPV.ProductGroupName, type = myFPV.ProductTypeName })%>

我无法弄清楚如何在<img>标记内添加<span><a>(带文字)标记。

有意义吗?

3 个答案:

答案 0 :(得分:11)

RouteLink方法的第一个参数用于链接文本。但遗憾的是,它会自动编码,因此您无法发送&lt;,&gt;它的人物。 (嗯,你可以。但他们会被编码。)

看看this page

  

路线值是自动进行URL编码的。例如,字符串“Hello World!”是   编码为“Hello%20World!”。

     

渲染图像链接

     

不幸的是,你无法使用   Html.ActionLink()帮助器呈现一个   图像链接。因为   Html.ActionLink()帮助程序HTML编码   它自动链接文本   无法将标签传递给此   方法并期望标记呈现为   一个图像。

     

相反,你需要使用   Url.Action()帮助生成   适当的链接。这是你怎么做的   生成带图像的删除链接:

<a href="<%= Url.Action("Delete") %>">
  <img src="../../Content/Delete.png" alt="Delete" style="border:0px" />
</a>

答案 1 :(得分:9)

我建议使用Url.RouteUrl。

<a href="@Url.RouteUrl("Default", new { action = "Index", controller = "Department", id = 1 })">
 <img src="http://site.com/dot.jpg" width="100px" height="100px" alt="" />  </a>

答案 2 :(得分:1)

有一个更好的选择。你应该试试像

这样的东西
<a href="@Url.RouteUrl("index-lang")">
  <img src="~/images/logo.png" alt="">
 </a>

&#34; index-lang&#34;是路由映射表中的路由名称。