在视图中显示图像,使用 viewmodel

show images in view, using viewmodel

美好的一天,你好吗? 我目前正在使用 mvc,c#,sql 并且我正在这样做: 我有一个像这样的视图模型:

 public class htmlviewmodel
{
    public string Color { get; set; }
    public string body { get; set; }
    public string style { get; set; }
}

我正在尝试获取图像 url 并在我的视图中显示该图像,url 来自我的数据库

  entity db = new myentity();
  var html = new htmlviewmodel();
  html.body="<img src=&quot;"+db.getmyimageurl().tostring()+";&quot; > ";

我的观点如下:

<div> my image: @Model.html.body  </div>

但它不显示图像,而是显示这样的字符串

<img src=&quot;imageUrlNotworking....//...;&quot; > "

我做错了什么吗?我该如何解决?谢谢!

您的第二个 ;&quot; 不需要 ; 开头,您可以使用 \"'(单引号)代替 &quot;。 之后你必须先解码 html 然后使用 Html.Raw 方法来渲染你的 html:

<div> my image: @Html.Raw(System.Web.HttpUtility.HtmlDecode(Model.html.body))  </div>

或者像这样将您的字符串转换为 HtmlString:

@{ var htmlBody= new HtmlString(System.Web.HttpUtility.HtmlDecode(Model.html.body));}
 <div> my image: @htmlBody  </div>

如果您将图像 url 存储在数据库中,它的存储方式类似于 "c:\picture.png.",但您实际上需要 "c:/picture.png"。所以将'\'转换为这个'/'。我以前就是这样面对的