c# - How to check file extension before displaying in view
问题描述
I have a project where I need to display images and videos. I am saving both image and videos URL inside a table called Images and while retrieving I am using image handler for images to resize the image on the server level. Right now my code to display images and video is just this line
<td>
<img src="~/ImageHandler.ashx?file=@Html.DisplayFor(modelItem => item.url)" />
</td>
I need something like below to identify the file extension before displaying. if the extension is png or jpeg go to this line else this line. How can I do like below or any other better option?
@foreach (var item in Model)
{
<tr>
if (extension == .png || extension == .jpeg )
{
<td>
<img src="~/ImageHandler.ashx?file=@Html.DisplayFor(modelItem => item.url)" />
</td>
}
else
{
<td>
<video width="240" height="240" autoplay>
<source src="@Html.DisplayFor(modelItem => item.url)" type="video/mp4">
</video>
</td>
}
<td>
@Html.DisplayFor(modelItem => item.details)
</td>
</tr>
}
解决方案
如果模型仅包含文件的 url/路径,则可以使用分隔符将字符串拆分为“。” 并获取结果字符串数组中的最后一个元素。
例如:
@foreach(var item in Model)
{
var extn = item.url.Split(".").Last();
if (extn == ".png" || extn == ".jpeg" )
{
@*Do image display*@
}
else
{
@*Do video display*@
}
}
不确定这是否是最佳的,但我想不出另一种方法来做到这一点。
推荐阅读
- reactjs - React 表单提交触发两次
- android - 是否可以使用闹钟设置特定日期?
- c++ - Eigen 和 glm 产品产生不同的结果
- python - 遵循 python 学习教程,但我的代码没有显示正确的输出,我不知道为什么
- apache-flink - apache flink windows安装
- javascript - 一个字符串和数字组合正则表达式,还有一些其他要求
- python-3.x - 如何使用熊猫将包含相同特定列值的行合并为一行?
- asp.net-mvc - 带有 Blazor 的水晶报表
- python - 如何将值添加到 ID 中相似的行?
- python - AttributeError: 'kivy.graphics.context_instructions.Color' 对象在我运行我的 kivy 代码时没有属性 'fbind'