为图像加载CSHTML附加字符串

时间:2018-05-16 14:17:59

标签: html asp.net asp.net-mvc razor

我正在使用ASP.net MVC获取cshtml中的网站页面。我是这个&的新手。我在C#中遇到一个简单的任务很困难。我正在尝试通过“类别”类中的字段将图像加载到我的网站上。这个类中有一个名为ImageFileName的字段。

我可以通常硬编码加载图像:

<img src="~/Content/Images/Dining/Dining.jpg"  
     alt=@c.CatName 
     style="width:64px;height:48px;" />

但是,我想在不对文件名进行硬编码的情况下也这样做:

<img src="~/Content/Images/" + @c.ImageFileName 
     alt=@c.CatName 
     style="width:64px;height:48px;" />

但是,这不会附加路径字符串,并且文件不会加载。我已经尝试将图像放在一般图像文件夹中,我只是觉得我的语法错误。

2 个答案:

答案 0 :(得分:2)

你的语法不正确。请记住,您正在渲染HTML并使用Razor编写,而不是使用C#。

此:

<img src="~/Content/Images/" + @c.ImageFileName 
     alt=@c.CatName 
     style="width:64px;height:48px;" />

应该是这样的:

<img src="~/Content/Images/@c.ImageFileName" 
     alt="@c.CatName"
     style="width:64px;height:48px;" />

但是,正如其他人所建议的那样,您可以考虑将图像的整个路径存储在ImageFileName属性中。那么你的代码就是:

<img src="@c.ImageFileName" 
     alt="@c.CatName" 
     style="width:64px;height:48px;" />

只是一些值得思考的东西

答案 1 :(得分:1)

试试这个(使用Html.Raw助手)

<img src="@Html.Raw("~/Content/Images/" + c.ImageFileName)" 
 alt="@Html.Raw(c.CatName)" style="width:64px;height:48px;" />