dbo.Images - 表格 http://imgur.com/g1suOTj
Image.cs
public class Image
{
public int ID { get; set; }
public string ImagePath { get; set; }
public string Category { get; set; }
}
public class ImageDBContext : DbContext
{
public DbSet<Image> Images { get; set; }
}
}
ImageController.cs
public class ImageController : Controller
{
private ImageDBContext db = new ImageDBContext();
public ActionResult Index(int ImageID)
{
return View(db.Images.Where(img => img.ID == ImageID).ToList());
}
Index.cshtml
@model IEnumerable<MvcMovie.Models.Image>
@{
ViewBag.Title = "Index"; }
<img src="~/Images/@Html.DisplayFor(ImagePath.Where(ImageID == 2))" />
参考上面的代码,我试图通过选择相关的ImagePath
来显示表中的ID
。让@Html.DisplayFor
检索并查看'ImagePath'
Where
ID
中的图片的值为2或3或4.这样成功完成后我就可以输入任何网址存储的图像从数据库到<img src=""/>
.cshtml
。以下代码未显示ID
值为2的图片。
<img src="~/Images/@Html.DisplayFor(ImagePath.Where(ImageID == 2))" />
有什么想法吗?
非常感谢您的帮助和时间。
答案 0 :(得分:1)
我认为你错了。
@Html.DisplayFor
应提供html代码以显示您传递的模型/属性。
您需要的是以下内容。
<img src="~/Images/@(Model.First(x=> x.ID == 2).ImagePath)" />
如果没有返回任何项目,则会抛出错误。
您已经将控制器返回的内容限制为仅限特定ID,并且只能显示此图像。
确保传递给Controller的ID也是2
或者你可以简单地使用返回的任何图像......见下文。
<img src="~/Images/@(Model.First().ImagePath)" />
如果您希望控制器返回所有图像,请参阅下文。
public ActionResult Index(int ImageID)
{
return View(db.Images.ToList());
}