Modellklassewie komme ich
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; }
}
Ansicht
@{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>
Controller
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);
}
Warum bekomme ich eine Fehlermeldung erhalten
ein solcher FehlerObjektverweis nicht auf eine Instanz eines objectServer-Fehlers in '/' Application gesetzt.
Der Fehler tritt auf der Linie
@for (var j = 0; j < Model.NewsLst.Count; j++)
in der Ansichtsseite. Aber ich habe Daten in der Tabelle, wie kommt dann der Fehler?
Gibt es Änderungen in der Modellklasse, um Werte in NewsLst
zu erhalten?
Das Codezeile kann die Ansicht, dass die Ausnahme nicht werfen (den Wert von 'res' ist eine Sammlung obwohl, wenn es keine passenden Daten ist es eine sein könnte leere Sammlung - es kann nicht "null" sein). Aber es gibt einen seltsamen Code hier - was ist der Zweck von 'News news = erwarten db.News.FindAsync (id);' wenn Sie es nie benutzen? Und warum sollte man den ganzen Code vor dem Testen ausführen, wenn der Wert von 'news'' null' ist? –