我已在我项目的wwwroot
上传了图片,其名称与产品名称相匹配(存储在数据库中)。现在我想在我的视图中显示它们但不知道它们的扩展名,因为用户可以上传任何类型的图像文件。是否有任何通配符或任何其他技巧来解决此问题?我的代码是:
@foreach (var item in Model) {
<tr>
<td>
<img src="~/Uploads/Images/@(item.ProductName)/@(item.ProductName).png" alt="@(item.ProductName+" - "+item.ProductDescription)" />
@Html.DisplayFor(modelItem => item.Category.CategoryName)
</td>
<td>
@Html.DisplayFor(modelItem => item.ProductDescription)
</td>
<td>
@Html.DisplayFor(modelItem => item.ProductName)
</td>
<td>
@Html.DisplayFor(modelItem => item.ProductPrice)
</td>
<td>
@Html.DisplayFor(modelItem => item.QuantityOnHand)
</td>
<td>
<a asp-action="Edit" asp-route-id="@item.ProductID">Edit</a> |
<a asp-action="Details" asp-route-id="@item.ProductID">Details</a> |
<a asp-action="Delete" asp-route-id="@item.ProductID">Delete</a>
</td>
</tr>
}
答案 0 :(得分:0)
我不确定这是最好的方法,但是你也可以GetAll文件(在你的情况下应该只是一个文件)而不是找到扩展名
var imagesDirectory = Server.MapPath("/Uploads/Images/" + item.ProductName);
var files = Directory.GetFiles(imagesDirectory,"*"+item.ProductName+"*");
var extension = Path.GetExtension(files[0]);