Vue partielle hérite de la disposition principale
J'ai une vue partielle et en int, il n'existe aucune trace de l'héritage à partir de n'importe quelle forme. Mais à chaque fois que je veux l'utiliser (rendre) à l'intérieur d'un point de vue, la mise en page répété une fois pour la vue, et une fois pour la vue partielle. Ce post suggère de créer un layout vide. Mais je pense que c'est la solution de contournement. Est-il de toute façon pour arrêter le chargement d'une page (à la disposition principale) pour des vues partielles. Je ne comprends pas, pourquoi quand il n'y a pas de code pour utiliser la mise en page, pourquoi devrait-il se charger. C'est comme la création d'une page dans ASP.NET et de voir qu'il hérite d'une page maître sans avoir <%@ Master ...
directive.
C'est ma vue partielle:
@* Recursive category rendering *@
@using Backend.Models;
@{
List<Category> categories = new ThoughtResultsEntities().Categories.ToList();
int level = 1;
}
@RenderCategoriesDropDown(categories, level)
@helper RenderCategoriesDropDown(List<Category> categories, int level)
{
List<Category> rootCategories = categories.Where(c => c.ParentId == null).ToList();
<select id='categoriesList' name='categoriesList'>
@foreach (Category rootCategory in rootCategories)
{
<option value='@rootCategory.Id' class='level-1'>@rootCategory.Title</option>
@RenderChildCategories(categories, level, rootCategory.Id);
}
</select>
}
@helper RenderChildCategories(List<Category> categories, int level, int parentCategoryId)
{
string padding = string.Empty;
level++;
List<Category> childCategories = categories.Where(c => c.ParentId == parentCategoryId).ToList();
foreach (Category childCategory in childCategories)
{
<option value='@childCategory.Id' class='level-@level'>@padding.PadRight(level, '-') @childCategory.Title</option>
@RenderChildCategories(categories, level, childCategory.Id);
}
level--;
}
- u peut afficher la première ligne de votre page partielle et votre méthode d'action du contrôleur?
Vous devez vous connecter pour publier un commentaire.
J'ai pu reproduire ce problème lors du rendu partielle, des pages à travers des appels ajax. Le
serait toujours accompagner avec mise en page. J'ai annulé ce problème en appelant explicitement
La disposition pourrait être à venir à partir de votre
~/Views/_ViewStart.cshtml
Vous pouvez essayer de substitution de cette dans votre vue partielle comme:
Layout = null;
et il ne devrait pas être la nécessité de le dire explicitement.@Html.Action("PartialViewControllerAction")
. Documentation de la méthode dit qu'il retourne le résultat du rendu d'une vue partielle de l'exécution.return View();
par hasard? Parce que si vous nereturn PartialView();
la mise en page est supprimé automatiquement pour vous.return View();
et que je devrais l'appelerreturn PartialView();
comme @muhammad-adeel-il dit.