J'essaie d'adapter la classe AccountController pour qu'elle utilise ma propre base de données principale. Pour ce faire, je dois envoyer une chaîne à _Layout.cshtml à vérifier. Comment est-ce possible?ASP.Net MVC 3 Envoyer une chaîne de la méthode HTTP-POST à _Layout.cshtml
J'ai essayé avec ViewData mais cela nécessite que le contrôleur corresponde à la vue attachée, par ex. AccountController à View/Account/LogOn.cshtml fonctionnera.
Je crois que ViewBag fonctionne de la même manière que j'obtiens une référence NULL lorsque j'essaie d'y accéder dans _Layout.cshtml.
En ce moment, mon code est un peu endommagé en essayant de résoudre le problème mais voici ce que j'ai. Espérons que cela aidera à mieux expliquer.
AccountController/[HTTP-POST] LogOn
...
if (user.GetRole(model.UserName).Equals("Admin"))
{
ViewBag.Role = "Admin";
}
...
_Layout.cshtml
@if (Request.IsAuthenticated && ViewBag.Role.Equals("Admin"))
{
...
}
Je ne pense plus cela peut se faire avec ou ViewBag ViewData (En raison de commentaires). Toute solution serait la bienvenue.
Nous vous remercions à l'avance - Ankou
Quelle est votre question? –
Le code ci-dessus ne fonctionne pas, il émet une exception disant essentiellement que le ViewBag.Role ne peut pas être référencé. Je veux savoir comment envoyer une chaîne d'un contrôleur à une vue qui n'est pas directement liée. – Ankou
Ne peut pas être référencé ou ne peut pas effectuer de liaison d'exécution sur une référence null? Si vous ne définissez pas 'ViewBag.Role' si l'utilisateur n'est pas un administrateur, alors il n'existe pas –