класс Modelкак же я получаю такую ошибку
public partial class News
{
public int Id { get; set; }
public Nullable<System.DateTime> Date { get; set; }
public string Description { get; set; }
public Nullable<bool> IsActive { get; set; }
} public class NewsList
{
public int Id { get; set; }
public List<ClsNews> NewsLst { get; set; }
} public class ClsNews
{
public int Id { get; set; }
public string Description { get; set; }
}
вид
@{int i = 1;}
@for (var j = 0; j < Model.NewsLst.Count; j++)
{
<tr>
<td>
@Html.HiddenFor(m => Model.NewsLst[j].Id)
@Html.HiddenFor(m => Model.NewsLst[j].Description)
@Html.DisplayFor(m => Model.NewsLst[j].Description.Substring(0,20))
@Html.ActionLink("Read More", "NewsInnerPage", "News")
</td>
</tr>
i++;
}
</table>
контроллер
News news = await db.News.FindAsync(id);
NewsList nl = new NewsList();
nl.Id = id;
news.Description = (db.News.Where(h => h.Id == id)).Count() > 0 ?
(db.News.Where(h => h.Id == id)).First().Description : string.Empty;
var res = db.News.Where(s => s.Id == id)
.Select(t => new ClsNews
{
Id = t.Id,
Description = t.Description
}).ToList();
nl.NewsLst = res;
if (news == null)
{
return HttpNotFound();
}
return View(nl);
}
Почему я получаю сообщение об ошибке
Ссылка на объект не установлена в экземпляр объекта. Ошибка сервера в приложении «/».
Ошибка возникает на линии
@for (var j = 0; j < Model.NewsLst.Count; j++)
на странице просмотра. Но у меня есть данные в таблице, то почему я получаю ошибку?
Можно ли что-либо изменить в классе модели для получения значений в NewsLst
?
Эта строка кода представление не может быть, бросание, что исключение (значение 'res' представляет собой набор, хотя, если нет соответствия данных, это может быть пустая коллекция - это не может быть «null»). Но здесь есть какой-то нечетный код - в чем цель News News = await db.News.FindAsync (id); 'когда вы его никогда не используете? И зачем пытаться выполнить весь этот код перед тестированием, если значение 'news' является' null'? –