2016-04-02 2 views
0

у меня есть этот код в моем контроллереНевозможно сравнить элементы типа 'System.Linq.IQueryable`1'. Только примитивные типы, типы перечисления и типы сущностей поддерживаются

[HttpGet] 
public ActionResult Nabipour() 
{ 
    string name = "Nabipour"; 
    var username = (from T in _db.tbl_teacher 
        where T.Page==name 
        select T.Username); 
    ViewBag.Nabipour = from N in _db.tbl_Tpage 
         where N.Username.Equals(username) 
         select N; 
    ViewBag.papers = from P in _db.tbl_Tpaper 
        where P.Username.Equals(username) 
        select P; 

    return View(); 
} 

и это мое мнение для этого действия:

@{ 
    ViewBag.Title = "Nabipour"; 
    Layout = "~/Views/Shared/_otherpage.cshtml"; 
} 
.... 
<ul> 
    @foreach (var paper in ViewBag.papers) 
    { 
     <li><a href="~/Content/Paper/@paper.PaperName"></a></li> 
    }     
</ul> 
.... 

так, как вы видите, я не проверять null в моем коде выбора, и я попробовал этот код с .FirstOrDefault() в списке. ошибка

Невозможно сравнить элементы типа 'System.Linq.IQueryable 1. Поддерживаются только примитивные типы, типы перечисления и типы объектов

на @foreach (var paper in ViewBag.papers), пожалуйста, помогите мне, что мне делать?

+1

Почему вы используете ViewBag вместо строго типизированного представления с соответствующей моделью? – DavidG

+0

@DavidG, потому что мне нужно использовать 2 модели для этого вида .i еще не писать код. если бы это была всего одна модель, вы правы, я использовал строго типизированный вид. но теперь мне нужно ViewBag для отправки этой информации с обеих моделей. –

+0

Используйте модель представления со всеми вашими свойствами, а не 'ViewBag' –

ответ

1
[HttpGet] 
public ActionResult Nabipour() 
{ 
    string name = "Nabipour"; 
    var username = (from T in _db.tbl_teacher 
        where T.Page==name 
        select T.Username).FirstOrDefault(); 
    ViewBag.Nabipour = from N in _db.tbl_Tpage 
         where N.Username.Equals(username) 
         select N; 
    ViewBag.papers = (from P in _db.tbl_Tpaper 
        where P.Username.Equals(username) 
        select P).ToList(); 

    return View(); 
} 
Смежные вопросы

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