AnsweredMVC avec Vue partielle Liste
Dbaseman était correcte mais pour simplifier tout cela, je ne suis pas besoin d'un modal et mon code ressemble à ceci maintenant:
[ChildActionOnly]
public ActionResult RecentNews()
{
return PartialView(db.Articles.ToList());
}
et
@{Html.RenderAction("RecentNews");}
Ci-dessous mon ancien code qui ne fonctionnait pas
J'ai du mal à faire fonctionner ce qui suit, je ne sais pas si je suis sur le point d'être sur la bonne voie ou non. Le code fonctionne bien si je crée une vue mais pas si je crée une vue partielle et l'ajoute à d'autres vues. Quoi que j'essaie, il semble que j'obtiens l'erreur: La référence d'objet n'est pas définie sur une instance d'un objet.
À mon avis, j'ai:
@Html.Partial("RecentNews")
Mon action ressemble à ceci:
public ActionResult RecentNews()
{
var rn = (from m in db.Articles
select new RecentNews
{
ArticleHeading = m.ArticleHeading
});
return View(rn);
//return View(db.Articles.ToList());
}
Mon modal:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
namespace melbournesportsstadium.Models
{
public class RecentNews
{
public string ArticleHeading { get; set; }
}
}
Et mon RecentNews.cshtml:
@model List<melbournesportsstadium.Models.RecentNews>
<table>
@foreach (var item in Model) {
<tr>
<td>
@Html.DisplayFor(modelItem => item.ArticleHeading)
</td>
</tr>
}
</table>
Quelqu'un peut-il m'aider s'il vous plaît à obtenir ce travail?
Merci dbaseman, j'ai essayé ça et ça fonctionne en quelque sorte mais pour une raison quelconque, il tire la vue partielle dans une vue complète avec la _layout. Savez-vous pourquoi ce serait ??? – Bojangles
@Bojangles Hm. Les seuls endroits que je connaisse où une mise en page peut être définie sont 1) dans la vue elle-même, 2) web.config dans le chemin de la vue ou un chemin parent – McGarnagle
@Bojangles Désolé, je voulais écrire ** _ ViewStart.cshtml **. Avez-vous un de ceux dans votre projet? Une mise en page par défaut pourrait être définie ici ... – McGarnagle