2012-02-10 100 views
-4
@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> 
+2

请缩小你的问题一点 - 有什么具体的部分是给你的问题? – eouw0o83hf 2012-02-10 15:02:51

+0

你得到的错误是什么? – 2012-02-10 15:03:53

+0

好吧,问题是我无法在img标签中显示图像。 – 2012-02-10 15:04:41

回答

2

如果图像是问题,我会建议以不同的方式做。您的剃刀视图可能不应负责淘洗服务器以查找图像;考虑通过模型或ViewData将该信息推入视图。

另外,为什么你将@"\\"传递给Path.Combine?您正在向路径添加双斜杠。让Path.Combine来处理这个问题。我认为这可能是你的主要问题。请执行下列操作之一:

string itemImagesFolderPath = Path.Combine(imagesFolderPath, ImageType.Item + @"\" + auction.Auction.InventoryReference); 

,或者更优选

string itemImagesFolderPath = Path.Combine(imagesFolderPath, ImageType.Item, auction.Auction.InventoryReference);