我是ASP.NET MVC的初学者。我在尝试从数据库中检索记录时遇到错误。
'System.Collections.Generic.List' 不包含'CategoryName'的定义
LINQ to SQL Class:
型号:
namespace MvcApplication1.Models
{
public class CategoryRepository
{
private BusDataClassesDataContext dc = new BusDataClassesDataContext();
public List<tblCategory> GetAllCategory()
{
return dc.tblCategories.ToList();
}
}
}
控制器:
public class CategoryController : Controller
{
//
// GET: /Category/
CategoryRepository cat = new CategoryRepository();
public ActionResult ViewCategory()
{
var category = cat.GetAllCategory().ToList();
return View("ViewCategory", category);
}
}
查看:
<p>
Category Name:<%=Html.Encode(Model.CategoryName)%>
</p>
<p>
Description:<%= Html.Encode(Model.Description)%>
</p>
更新
答案 0 :(得分:2)
您正在将List<tblCategory>
传递给视图。因此,此处的Model
将是generic list
。这就是您收到错误消息的原因: -
'System.Collections.Generic.List' does not contain a definition for 'CategoryName'
您打算传递tblCategory还是打算迭代思考模型来获取每个tblCategory?
你可以这样做
<% foreach(var category in Model)
{%>
<p>
Category Name:<%=Html.Encode(category.CategoryName)%>
</p>
<p>
Description:<%= Html.Encode(category.Description)%>
</p>
<% } %>
稍微不同的说明。 您已经在方法中将类型作为GenericList返回。
public List<tblCategory> GetAllCategory()
{
return dc.tblCategories.ToList();
}
您无需再次执行模糊的.ToList()
转化。
var category = cat.GetAllCategory().ToList();
答案 1 :(得分:2)
使用此::
<强> <% foreach (var category in Model)
强>
ruther than ::
<强> @foreach (var category in Model)
强>
在视图中。
喜欢这个
<% foreach (var category in Model)
{ %>
<p>
Category Name :<%=Html.Encode(category.CategoryName)%></p>
<p>
Description :<%=Html.Encode(category.Description)%></p>
<% } %>