我正在使用C#在ASP商店工作,在这种情况下,当我试图获取产品详细信息页面的图像时,我遇到了一些问题,每个产品的每个图像。最重要的表格是:
产品:每个带有ID的产品都有一个图像 图像:具有不同产品的图像,每个产品一个图像。
产品表包含以下字段:
public List<Imgs> Imagenes { get; set; }
在图像表中:
//Id from image
public int ID { get; set; }
//Name of the image
public string NameImg { get; set; }
//Path from image
public string ImgPath{ get; set; }
//FK from product table
[ForeignKey("Product")]
public int Product_Id { get; set; }
public Product Product { get; set; }
为了从数据库中获取数据,我正在使用这种方法:
public T GetById(string id)
{
return GetById(new object[] { id });
}
在aspx.cs中,我将数据“填充”到aspx中,方法是: (产品经理是GetById方法的类)
prodManager = new ProductManager(context)
Product product = null;
product = prodManager.GetById(new object[] { id });
var image = product.Imagenes.FirstOrDefault().ImgPath.ToString();
nameProd.Text = "<h2>"+product.NameProd+"</h2>";
imgProd.ImageUrl = image;
nameProd是一个标签,imgProd是asp:Image
。问题是,当我试图将imgPath作为imgProd的源时,它说它是null,我认为我错过了一些关于我使用FirstOrDefault的变量图像。
答案 0 :(得分:0)
问题的解决方案是:
var img = imgMan.GetAll().Where(i => i.ID == product.Id).FirstOrDefault();
imgMan是图像管理器调用获取数据和打印图像的方法,解决方案是这样的:
imgProd.ImageUrl = img.ImgPath;