2012-04-27 4 views
2

je une vue partielle fortement typé qui doit indiquer le nom d'un compte qu'un utilisateur est connecté:Vue partielle avec @ HTML.Action (...)


@model MyNamespace.Models.AccountNameViewModel 

@if (Request.IsAuthenticated) 
{ 
    @Html.Action("AccountName", "AccountNameController", Model) 
    Logged in to @Model.AccountName 
} 
 

J'ai un contrôleur:

public class AccountNameController : Controller 
{ 
    public ActionResult Index() 
    { 
     return View(); 
    } 

    [ChildActionOnly] 
    public ActionResult AccountName(AccountNameViewModel model) 
    { 
     ... Do somthing with the repository to populate the model 
     return PartialView(model); 

    } 
} 

ce que je veux faire est d'ajouter une vue partielle partagée qui affiche le nom d'un compte utilisateur est connecté en. Ce que je reçois est l'erreur suivante:

The controller for path '/ParentViewPath/' was not found or does not implement IController. 

Suis-je au moins dans la bonne direction?

Répondre

8

Vous devez enlever la controller partie dans votre appel

@Html.Action("AccountName", "AccountName", Model) 

Pour rendre une vue partielle, vous pouvez également appeler

@Html.Partial("AccountName", "AccountName", Model) 
+0

aurait dû être évident ... – Void