umbraco 7: obtenir la valeur de la propriété
Hé les gars à l'aide de umbraco 7 ASP.NET C# MVC 4.
Im essayant d'utiliser le nouveau umbraco, jusqu'à présent, sa été ok, mais j'ai besoin d'obtenir une propriété d'une de mes pages j'ai configuré.
@inherits Umbraco.Web.Mvc.UmbracoTemplatePage
@{
var homePage = CurrentPage.AncestorsOrSelf(1).First();
var menuItems = homePage.Children.Where("isMenu == true");
}
<!-- Nav -->
<div class="row">
<div class="col-md-12 top-menu-container">
<ul>
@* If the Url of the current page is "/" then we want to add the class "current_page_item" *@
@* Otherwise, we set the class to null, that way it will not even be added to the <li> element *@
<li>
<div onclick="location.href='/';" class="col-md-2 metro-container" style="background-color:#@Model.Content.GetPropertyValue("navigationColor")" >
<img class="menu-img" src="../../media/1001/home.png" alt="" />
Home
</div>
</li>
@foreach (var item in menuItems)
{
@* If the Id of the item is the same as the Id of the current page then we want to add the class "current_page_item" *@
@* Otherwise, we set the class to null, that way it will not even be added to the <li> element *@
<li>
<div onclick="location.href='@item.Url';" class="col-md-2 metro-container" style="background-color:#@item.Content.GetPropertyValue("navigationColor")" >
<img class="menu-img" src="../../media/1001/home.png" alt="" />
@item.Name
</div>
</li>
}
</ul>
</div>
</div>
Donc la première "li" en dehors de la boucle, j'ai simplement obtenir les modèles de contenu méthode Getproperty qui certes me fait tout bien je le dis aussi.
Cependant la boucle j'ai bien passe par les présentes pages enfants, je ne peux pas sembler obtenir une propriété spécifique.
Qui est pire, c'est intellicense ne fonctionne pas comme sa tous le temps d'exécution.
La ligne en question est
<div onclick="location.href='@item.Url';" class="col-md-2 metro-container" style="background-color:#@item.Content.GetPropertyValue("navigationColor")" >
J'ai besoin d'obtenir la couleur qui a été définie sur la page de la navigationColor de contrôle.
Ce que je fais mal ici?
Vous devez vous connecter pour publier un commentaire.
Grand derp de mon côté.
L'élément var dans la boucle foreach a déjà de la propriété contenus dans l'élément.
tout ce que vous devez faire est de
et qui devrait le faire.
Le code suivant fonctionne pour moi:
Le problème, c'est que vous êtes en utilisant un modèle dynamique à la place de la fortement typé genre.
Au lieu d'utiliser
CurrentPage
vous pouvez utiliserModel.Content
.Ainsi, au lieu de:
var homePage = CurrentPage.AncestorsOrSelf(1).First();
Utilisation:
var homePage = Model.Content.AncestorOfSelf(1);
Intellisense puis le travail après un arrêt après
homePage
.Je voudrais vous recommandons également de la saisie
using Umbraco.web
avec le reste de votre utilisation des déclarations au sommet du modèle. Ce qui devrait encore améliorer les intellisense, et vous permettent de voir les méthodes telles que.GetPropertyValue<T>(string alias)
.Vous devriez alors être en mesure d'utiliser
item.GetPropertyValue<string>("navigationColor")
.c'est la bonne utilisation de l'élément lors de la boucle