如何在这种情况下执行where子句
本文关键字:where 子句 执行 这种情况下 | 更新日期: 2023-09-27 18:02:17
dbo.Images-表https://i.stack.imgur.com/wN98b.jpg
图像.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))" />
参考上面的代码,我试图通过选择相关的ID
来从表中显示ImagePath
。使@Html.DisplayFor
从'ImagePath'
Where
ID
检索和观看图像的值为2或3或4。如果这项工作成功,我将能够将数据库中存储的任何url图像分别输入到.cshtml
上的<img src=""/>
上。以下代码不显示ID
值为2的图像。
<img src="~/Images/@Html.DisplayFor(ImagePath.Where(ImageID == 2))" />
有什么想法吗
非常感谢您的帮助和时间。
我认为你搞错了。
@Html.DisplayFor
应该提供html代码来显示您传递的模型/属性。
你需要的是下面这个。
<img src="~/Images/@(Model.First(x=> x.ID == 2).ImagePath)" />
如果没有返回任何项,这将引发错误。
您已经将控制器返回的内容限制为仅特定的ID,并且只能显示此图像。
确保传递给控制器的ID也是2
或者,您可以简单地使用返回的任何图像。。。请参见下文。
<img src="~/Images/@(Model.First().ImagePath)" />
如果您希望控制器返回所有图像,请参阅下面的。
public ActionResult Index(int ImageID)
{
return View(db.Images.ToList());
}