检索记录时出错

时间:2013-04-22 03:47:51

标签: asp.net-mvc asp.net-mvc-2

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

  

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

LINQ to SQL Class: enter image description here

型号:

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>

更新

enter image description here

2 个答案:

答案 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>
<% } %>