@using System.Configuration
@using UI.AuctionService
@using UI.Common
@using UI.Helpers
@model UI.Models.AuctionFrontendListViewModel
@{
ViewBag.Title = "Auction List";
}
<h2>@Model.Title</h2>
<table>
<tr>
<th>
Image
</th>
<th>
Type
</th>
<th>
Auction title
</th>
<th>
Starts
</th>
<th>
Ends
</th>
<th>
Is featured
</th>
<th>
Bid count
</th>
<th>
Creation time
</th>
<th></th>
</tr>
@foreach (var auction in Model.Auctions)
{
var type = string.Empty;
if (auction.Auction is LubAuction)
{
type = "Lowest unique wins";
}
else if (auction.Auction is EsfAuction)
{
type = "Highest wins";
}
string imagesFolderPath = HttpContextHelper.GetPathInServer(ConfigurationManager.AppSettings["ImagesFolderPath"]);
string itemImagesFolderPath = Path.Combine(imagesFolderPath, ImageType.Item + @"\\" + auction.Auction.InventoryReference);
string chosenImage = string.Empty;
if (Directory.Exists(itemImagesFolderPath))
{
string[] files = Directory.GetFiles(itemImagesFolderPath);
if (files.Length > 0)
{
chosenImage = files[0];
}
}
<tr>
<td>
<img src="@chosenImage" />
</td>
<td>
@type
</td>
<td>
@Html.DisplayFor(modelItem => auction.Auction.Title)
</td>
<td>
@DateTimeHelper.LocalDateTime(auction.Auction.Starts)
</td>
<td>
@DateTimeHelper.LocalDateTime(auction.Auction.Ends)
</td>
<td>
@Html.DisplayFor(modelItem => auction.Auction.IsFeatured)
</td>
<td>
@Html.DisplayFor(modelItem => auction.Auction.BidCount)
</td>
<td>
@DateTimeHelper.LocalDateTime(auction.Auction.AddedDate)
</td>
<td>
@Html.ActionLink("Details", "Details", new { id = auction.Auction.Id })
</td>
</tr>
}
</table>
<div class="pager">
@Html.PageLinks(Model.PagingInfo, x => Url.Action(Model.Action, new { page = x }))
</div>
@using System.Configuration @using UI.AuctionService @using UI.Common @using UI.Helpers @model UI.Models.AuctionFrontendListViewModel @{ ViewBag.Title = Auction
Share
If the image is the issue, I would suggest doing this differently. Your Razor view probably shouldn’t be in charge of scouring the server to look for images; consider pushing that info into the view through the model or ViewData.
In addition, why are you passing in
@"\\"to Path.Combine? You’re adding a double-slash to the path. Let Path.Combine handle this instead. I think that’s probably your main problem. Do one of the following:or, more preferably