【问题标题】:Url.Content and reading ~ tilde in URL from xml fileUrl.Content 和阅读 ~ 来自 xml 文件的 URL 中的波浪号
【发布时间】:2012-10-17 12:47:24
【问题描述】:

我正在使用带有 .aspx 视图引擎的 ASP.NET MVC 3。 我有 Maps.xml 文件:

    <imgurl>
        ../../Content/Img/BrandsLogo/samsung_logo.png
    </imgurl>
</map>

….

在 MapView.aspx 我有:

<%: Url.Content( Model.ImgUrl ) %> 

这很好用,图像按原样显示。

问题是: 我想在 xml 文件中使用波浪号:

    <imgurl>
        ~/Content/Img/BrandsLogo/samsung_logo.png
    </imgurl>

但是图片的 URL 被破坏了;不知何故,它在其中添加了 Mobile/MapView。像这样的文件夹和.aspx文件是哪个?

/Mobile/MapView/~/Content/Img/BrandsLogo/samsung_logo.png

当我在 xml 文件中使用 ../../ 时,URl 是正确的: /Content/Img/BrandsLogo/samsung_logo.png

我已经尝试了解决方案: Using Url.Content with semi-relative URL

但是我得到了一些额外的空格: /Content/Img/BrandsLogo%20%20%20%20%20%20%20%20%20%20%20%20/samsung_logo.png

如何从 xml 文件中读取波浪号 url (~/Content/Img/BrandsLogo/samsung_logo.png) 并使用 Url.Content 方法?

谢谢。

【问题讨论】:

    标签: c# xml asp.net-mvc asp.net-mvc-3


    【解决方案1】:

    您可以通过Trim() 方法使用您提供 URL 并稍作修改的解决方案:

    <img src="@Url.Content("~/Content/Img/BrandsLogo" + Model.ImageUrl.Trim())" />
    

    【讨论】:

    • 我刚刚注意到我的额外空间是从哪里来的。我通过在 xml 文件中添加额外的行来制作它们: /motorola_logo.png
    • 是的,XML 会读取您键入的每个字符,因此最好尽可能密集地编写它。
    • 再次感谢@Ivan Ferić 的回复
    猜你喜欢
    • 1970-01-01
    • 2014-12-04
    • 1970-01-01
    • 1970-01-01
    • 2017-11-10
    • 1970-01-01
    • 2014-09-04
    • 2019-04-09
    • 2016-05-16
    相关资源
    最近更新 更多