Ce que je vois, c'est une propriété de disposition de chaîne. Mais comment puis-je passer explicitement un modèle à la propriété Layout ?
Réponses
Trop de publicités?Supposons que votre modèle soit une collection d'objets (ou peut-être un seul objet). Pour chaque objet du modèle, procédez comme suit.
1) Placez l'objet que vous souhaitez afficher dans le ViewBag. Par exemple :
ViewBag.YourObject = yourObject;
2) Ajoutez une instruction using en haut de _Layout.cshtml qui contient la définition de la classe pour vos objets. Par exemple, dans _Layout.cshtml
@utilisant VotreApplication.VosClasses ;
3) Lorsque vous faites référence à votre objet dans _Layout cast it. Vous pouvez appliquer le cast grâce à ce que vous avez fait en (2).
public interface IContainsMyModel
{
ViewModel Model { get; }
}
public class ViewModel : IContainsMyModel
{
public string MyProperty { set; get; }
public ViewModel Model { get { return this; } }
}
public class Composition : IContainsMyModel
{
public ViewModel ViewModel { get; set; }
}
Utilisez IContainsMyModel dans votre mise en page.
Résolu. Règle des interfaces.
Comme je l'ai indiqué dans mon message précédent, avant que Bluefeet ne décide de le supprimer,
"Toutes les solutions déjà proposées fonctionnent parfaitement. Puisqu'il y a plusieurs façons d'"accomplir cela". j'ai pensé proposer une solution supplémentaire".
Vous pouvez effectuer un appel AJAX qui renvoie le JSON ou le HTML à ajouter à votre page.
Ajouter de la couleur
Comme il s'agissait d'une question vague au départ, je vais ajouter un peu de couleur à la façon dont vous POUVEZ le faire et dont je l'ai fait.
Si vous avez créé une API Web dans votre site, vous pouvez faire un appel REST à cette API pour obtenir le JSON à analyser. Si vous n'avez pas d'API Web, vous pouvez faire un appel REST à une action dans votre contrôleur, puis utiliser JSon.Net pour analyser votre objet en JSon valide. http://www.nuget.org/packages/Newtonsoft.Json/6.0.1 .
Dans votre vue, vous pouvez utiliser knockoutjs http://knockoutjs.com/documentation/style-binding.html pour lier les données de votre page. Cette option vous permet de charger votre contenu de manière asynchrone tout en étant capable de vous lier à votre modèle de vue.
~Applaudissements
- Réponses précédentes
- Plus de réponses