C# 在Razor中,如果URL已经在模型的属性中,我如何在图像中显示?

C# 在Razor中,如果URL已经在模型的属性中,我如何在图像中显示?,c#,image,url,razor,encoding,C#,Image,Url,Razor,Encoding,我有一个类,它有一个名为PictureURL的属性。它包含指向图片的绝对URL,该URL应将图片表示为字符串 public class MyClass { public string PictureURL {get;set;} public string Name {get; set;} } 我想在局部视图中显示它 @model MyClass <div> <img src="@Model.PictureUrl" /> @Model

我有一个类,它有一个名为
PictureURL
的属性。它包含指向图片的绝对URL,该URL应将图片表示为字符串

public class MyClass
{
    public string PictureURL {get;set;} 
    public string Name {get; set;}
} 
我想在局部视图中显示它

@model MyClass
<div> 
    <img src="@Model.PictureUrl" />
    @Model.Name
</div> 
@model MyClass
@型号.名称
问题是MVC对显示的属性进行编码。所以我的URL包含了一个符号,它被弄坏了。例如,gravatar标识图标将变为
http://www.gravatar.com/avatar/0d958098841b2060bf685088b33e6662?d=identicon&s=256
。当然,浏览器不会使用这个损坏的img标记渲染任何内容

据我所知,没有HTML助手可以构建
标记。当我在Razor中搜索显示图像时,得到的结果是正确解析相对URL


正确构建img标签的好方法是什么?(我拥有MyClass的代码,可以将其属性类型从string更改为其他类型,如果这样做有帮助的话)

@Html.Raw(Model.PictureUrl)
应该可以解决这个问题。

在使用Html时,请查看以确保您非常小心并信任您的数据。Raw@Jonesy谢谢,说得很好。在这种情况下,所有指向图像的链接都是由开发人员手工输入的,我不在这里显示用户内容,因此我对它们感到安全。当然,在一般情况下知道这一点是很好的。