我正在阅读一个教程并尝试使用此行时出现此错误,有人可以提出建议,谢谢:
<ItemTemplate>
<a class='MostPopularItemText' href='ProductDetails.aspx?productID=<%# Eval("ProductId") %>&&CategoryId=<%# Eval("CategoryId") %>'><%# Eval("ModelName") %></a><br />
</ItemTemplate>
某些事情与'CategoryId'不对,因为如果我把它拿出来它会起作用:
<aclass='MostPopularItemText'href='ProductDetails.aspx?productID=<%# Eval("ProductId") %>&&CategoryId=<%# Eval("CategoryId") %>'><%# Eval("ModelName") %></a><br/>
到
<aclass='MostPopularItemText'href='ProductDetails.aspx?productID=<%# Eval("ProductId") %>'><%# Eval("ModelName") %></a><br/>
代码隐藏:
private void WriteAlsoPurchased(int currentProduct)
{
using (CommerceEntities db = new CommerceEntities())
{
try
{
var v = db.SelectPurchasedWithProducts(currentProduct);
RepeaterItemsList.DataSource = v;
RepeaterItemsList.DataBind();
}
catch (Exception exp)
{
throw new Exception("ERROR: Unable to Write Also Purchased - " + exp.Message.ToString(), exp); <------location where the exception is thrown
}
}
}
'SelectPurchasedWithProducts'存储过程:
ALTER PROCEDURE
dbo.SelectPurchasedWithProducts
@ProductID int
AS
SELECT TOP 5
OrderDetails.ProductID,
Products.CategoryID,
Products.ModelName,
SUM(OrderDetails.Quantity) as TotalNum
FROM
OrderDetails
INNER JOIN Products ON OrderDetails.ProductID = Products.ProductID
WHERE
OrderID IN
(
/* This inner query should retrieve all orders that have contained the productID */
SELECT DISTINCT OrderID
FROM OrderDetails
WHERE ProductID = @ProductID
)
AND
OrderDetails.ProductID != @ProductID
GROUP BY
OrderDetails.ProductID, Products.CategoryID, Products.ModelName
ORDER BY
TotalNum DESC
RETURN
答案 0 :(得分:2)
您的属性被命名为CategoryID而不是CategoryId
<%# Eval("CategoryId") %>
应该阅读
<%# Eval("CategoryID") %>
答案 1 :(得分:2)
一些想法:
怎么样&lt;%#Eval(“Products.CategoryId”)%&gt;?
两个&符号是否会导致问题? &安培;&安培;类别ID = ...
此外,尝试将链接外的CategoryId单独绑定并验证值是否输出。您的代码对我来说很好,这就是为什么我不得不怀疑它是否只是您的链接结构的方式。
答案 2 :(得分:1)
好的我想我得到了它,在更新了S Proc后,我必须访问我的模型浏览器功能,展开EntityContainer,输入Function Imports并单击Update按钮。
我希望这能帮助那些人“数据绑定:不包含名称为'xxx'的属性错误。” 要么 “该类型的成员'xxx'在数据读取器中没有相应的具有相同名称的列。”
似乎一切都已到位。