2013-04-22 5 views
1

Я новичок в ASP.NET MVC. Я получаю сообщение об ошибке при попытке получить записи из базы данных.Ошибка при получении записей

'System.Collections.Generic.List' не содержит определение для 'CategoryName'

LINQ к SQL класса: 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> 

UPDATE:

enter image description here

+0

@ chamara- ли мое решение поможет решить проблему? – PSL

ответ

2

Вы передаете List<tblCategory> к виду. Следовательно, здесь Model будет generic list. То есть reaons почему вы получаете сообщение об ошибке: -

'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(); 
+0

Я пытаюсь перебирать записи в tblCategory и отображать на виду – chamara

+0

Является ли код, размещенный здесь, из представления ViewCategory? – PSL

+0

Да, это вид из ViewCategory. Я получаю сообщение об ошибке при попытке вашего решения. см. обновление – chamara

2

Используйте эту ::

<% foreach (var category in Model)

Ruther чем ::

@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> 
<% } %> 
+1

+1 для исправления синтаксиса ... – PSL

Смежные вопросы