Asp.net MVC - Rendu d'une Vue partielle D'une Zone
J'ai créé une zone qui va gérer notre certains génériques de choses à travers tous nos produits de développement, tout comme le journal ins, HTML helpers, etc. À l'intérieur de la zone, j'ai une vue partielle sur que je suis d'essayer de référence à l'extérieur de la région. J'ai enregistré la zone avec
public class Routes : AreaRegistration
{
public override void RegisterArea(AreaRegistrationContext context)
{
context.MapRoute(
"Common_default",
"Common/{controller}/{action}/{id}",
new {
controller = "Account",
action = "Index",
id = UrlParameter.Optional
});
}
public override string AreaName
{
get { return "MvcCommons"; }
}
}
Et maintenant, dans l'ordinaire de projet, je suis en train de faire référence à une vue dans le MvcCommons...
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
<h2>TestGrid</h2>
<% Html.RenderPartial("jQGridTable", ViewData.Model); %>
Mais je continue à obtenir que le point de vue n'est pas trouvé. Avant, lors de la création du MVC projet de mise en commun, j'ai été faire afficher les erreurs, mais les erreurs m'a dit qu'il a regardé dans les deux dossiers de la zone et de la vue par défaut des dossiers. Cette fois, je suis le seul à obtenir les dossiers par défaut. Est-il un moyen pour accomplir cette?
Merci à tous!
OriginalL'auteur DavidAndroidDev | 2010-12-08
Vous devez vous connecter pour publier un commentaire.
Je n'ai même pas eu à faire cela, mais à une supposition, je suppose que vous devez utiliser
Html.RenderAction()
au lieu de cela, quelque chose commeHtml.RenderAction("action", "controller", new { area = "Area", model = ViewData.Model })
.modèle devra être remplacé par le nom de l'action de paramètres, mais cela devrait fonctionner.
modifier cela nécessitera un contrôleur et la vue d'installation pour chaque action.
OriginalL'auteur KallDrexx
Une chose importante à retenir est que lors de l'utilisation de RenderPartial vous l'utilisez dans le cadre de l'action en cours.
Que votre action n'est pas dans un domaine, il sera seulement regarder dans le dossier pour le contrôleur de l'action appartient à ensuite le dossier partagé.
Tout point de vue que vous souhaitez partager entre les zones et les contrôleurs et disponible à la route doit être la Vue de la racine de/dossier Partagé. Vraiment, si la vue est appelable partiel comme ça il n'y a probablement peu de raison pour elle d'appartenir à une région.
Vous pouvez appeler dans la zone où vous voulez rendre les actions plutôt que les partiels - ce qui modifie le contexte de l'action pour l'action que vous appelez en vous permettant alors de retour de vues au sein de cette zone.
OriginalL'auteur Mark
La valeur par Défaut ViewEngine cherche les points de Vue à l'intérieur de la même zone (ou racine) dossiers où le contrôle de l'utilisateur est référencé. Si vous souhaitez créer un moyen d'utiliser ou de stocker des points de vue, je vous suggère de créer un personnalisé ViewEngine. Veuillez jeter un oeil à cet exemple: Mettre en œuvre le Thème de Dossiers à l'aide d'un Custom ViewEngine
OriginalL'auteur Oleiro