【发布时间】:2014-09-22 05:36:44
【问题描述】:
我正在关注 MVC 音乐商店的教程并尝试在此基础上进行构建。我希望能够为类别中的每个项目显示图像。到目前为止,我可以返回一个类别的项目列表,但无法从数据库中获取 URL 以在我的视图中填充图像源。
我设置模型的方式如下。我有一个项目表,其中包含 Category 表的外键。然后我有一个 Image 表,它有一个指向 item 表的外键。我一直在尝试从 url 表中为从控制器返回的每个项目获取一个 url。
类别模型:只是类别列表
public class Category
{
public int CategoryId { get; set; }
public string CategoryName { get; set; }
public ICollection<Item> Items { get; set; }
}
项目模型:包含类别的外键
public class Item
{
public int ItemId { get; set; }
public int CategoryId { get; set; }
public string ItemName { get; set; }
public virtual Category Category { get; set; }
public ICollection<Image> Images { get; set; }
}
图像模型:包含项目表的外键。
public class Image
{
public int ImageId { get; set; }
public string ImageURL { get; set; }
public int ItemId { get; set; }
public virtual Item Item { get; set; }
}
浏览控制器
public ActionResult Browse(string category)
{
var categoryModel = storeDB.Categorys.Include("Items")
.SingleOrDefault(c => c.CategoryName == category);
return View(categoryModel);
}
查看:
@model Project.Models.Category
<div class="items">
<h3><em> @Model.CategoryName </em></h3>
@foreach (var item in Model.Items)
{
<a href="@Url.Action("Details",new {id = item.ItemId})"/> @item.ItemName
<a href="@Url.Action("Details",new {id = item.ItemId})"/> <img alt="@item.ItemName" src= "@item.Image.Where(i => i.ImageURL.Contains("thumb")).FirstOrDefault()" />
}
当我单步执行上面的代码时,我可以看到图像 URL 为空,但一直未能找出正确的设置方法。与任何初学者问题一样,我想我做错了什么或错过了显而易见的事情。欢迎任何帮助。
谢谢
【问题讨论】:
-
问题的标题有误导性...
-
记住我不确定我的问题是什么。你有什么建议?
标签: asp.net-mvc asp.net-mvc-3 asp.net-mvc-4