11

我想要这个输出:

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

有道理?

4

3 回答 3

11

RouteLink 方法的第一个参数是链接文本。但不幸的是,它会自动编码,因此您无法向其发送 <, > 字符。(嗯,你可以。但它们会被编码。)

看看这个页面

路由值是自动编码的 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>
于 2009-04-03T06:18:41.290 回答
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>
于 2013-03-21T17:04:59.947 回答
2

有一个更好的选择来做到这一点。你应该尝试一些类似的东西

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

其中“index-lang”是路由映射表中的路由名称。

于 2014-04-01T11:17:57.767 回答