1

我是 ASP.NET MVC 的初学者。尝试从数据库中检索记录时出现错误。

“System.Collections.Generic.List”不包含“CategoryName”的定义

LINQ to SQL 类: 在此处输入图像描述

模型:

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>

更新:

在此处输入图像描述

4

2 回答 2

2

用这个::

<% foreach (var category in Model)

比 ::

@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>
<% } %>
于 2013-04-22T04:45:26.683 回答
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();
于 2013-04-22T03:52:28.407 回答