2

我已经在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>
}
4

1 回答 1

0

我不确定这是不是最好的方法,但或者你可以 GetAll 文件(在你的情况下应该只有一个文件),而不是找到扩展名

 var imagesDirectory = Server.MapPath("/Uploads/Images/" + item.ProductName);
 var files = Directory.GetFiles(imagesDirectory,"*"+item.ProductName+"*");

 var extension = Path.GetExtension(files[0]);
于 2016-03-13T17:50:36.213 回答