【问题标题】:MVC - RouteLink and ImageMVC - RouteLink 和图像
【发布时间】:2009-04-03 04:56:07
【问题描述】:

我想要这个输出:

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

使用类似于:

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

我不知道如何在我的&lt;a&gt; 标签中添加&lt;img&gt;&lt;span&gt;(带有文本)标签。

有意义吗?

【问题讨论】:

    标签: asp.net-mvc routes


    【解决方案1】:

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

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

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

    【讨论】:

    • 完美运行,谢谢将其添加到 RouteConfig:routes.MapRoute("Index", "Index", new { controller = "Home", action = "Index" });并且能够在我的网站徽标上使用
    【解决方案2】:

    我建议使用 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>
    

    【讨论】:

    • 这就是我最终使用的,这个答案应该得到比它得到的更多,我会实现它。
    • 确实是这个问题最合适的答案。接受我的投票。
    【解决方案3】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-11-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多