у меня есть этот код в моем контроллереНевозможно сравнить элементы типа '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)
, пожалуйста, помогите мне, что мне делать?
Почему вы используете ViewBag вместо строго типизированного представления с соответствующей моделью? – DavidG
@DavidG, потому что мне нужно использовать 2 модели для этого вида .i еще не писать код. если бы это была всего одна модель, вы правы, я использовал строго типизированный вид. но теперь мне нужно ViewBag для отправки этой информации с обеих моделей. –
Используйте модель представления со всеми вашими свойствами, а не 'ViewBag' –