我試圖展示產品圖片,但我有一個問題 顯示圖像,我覺得有很多我不明白理解的ASP.NET MVC基本概念
- 我的第一步是顯示每個產品的媒體,因爲表已經有了一個外鍵MediaID,我認爲我的模型對於這一步很好
- 第二步是製作一個ProductMedia表或關聯以便讓產品有幾張圖片,主鍵將由productId和mediaId組成
我迷失在這2個步驟的中間,通常我的視圖寫入的方式我希望能夠至少顯示默認圖片,每個產品必須具有的媒體列表中的第一個
當我在家庭控制器中放置一個斷點時,我可以看到每個產品 都有一個mediaId,但我不知道在哪裏以及如何將圖片添加到介質列表中,因此毫不奇怪,該列表爲空並且沒有圖像在我的任何產品
我的HomeController的
public ActionResult Index(string searchString)
{
var products = from p in dc.Products
select p;
....
return View(products);
}
這是我HomeIndex
@foreach (var p in Model)
{
<div class="col-lg-4 col-sm-4 hero-feature text-center">
<div class="thumbnail">
<a href="@Url.Action("Details", "Product", new { id = p.ProductID })" class="link-p" style="overflow: hidden; position: relative;">
**@if (p.Medium.Count > 0)
{
<img src="@p.Medium.ElementAt(0).MediaUrl" alt="" style="position: absolute; width: auto; height: 257px; max-width: none; max-height: none; left: 1px; top: 0px;">
}**
</a>
<div class="caption prod-caption">
<h4><a href="@Url.Action("Details", "Product", new { id = p.ProductID })">@p.ProductName.Substring(0, 1).ToUpper()@p.ProductName.Substring(1).ToLower()</a></h4>
<p>@p.ProductDescription</p>
<p>
</p>
<div class="btn-group">
<a href="#" class="btn btn-default">@p.Prices.OrderBy(pr => pr.PriceDate).FirstOrDefault().PriceValue</a>
@* <a href="#" class="btn btn-primary"><i class="fa fa-shopping-cart"></i>Buy</a>*@
@Html.ActionLink("Buy!", "Create", "Cart", new { id = p.ProductID, quantity = 1 }, new { @class = "btn btn-primary" })
</div>
<p></p>
</div>
</div>
</div>
}
介質是在產品 的模型中定義介質的列表中的每個產品都有數家媒體,它看起來像這樣
public partial class Product
{
public Product()
{
....
this.Medium = new HashSet<Medium>();
}
public int ProductID { get; set; }
....
public int MediaID { get; set; }
....
public virtual ICollection <Medium> Medium { get; set; }
}
請注意,模型 - 視圖 - 控制器標籤是關於模式的問題。 ASP.NET-MVC實現有一個特定的標籤。 –