2009-11-09 2 views

Répondre

1

Le code derrière l'idée de vues dans MVC a été supprimé car il ne semblait pas vraiment correspondre au paradigme MVC. Peut-être que vous devriez considérer creating your own Html Helpers à la place. Pour ce faire, étendre les actions existantes comme Html.ActionLink() est facile (et des tas de plaisir).

Cet exemple montre comment j'ai créé un assistant pour modifier mes liens de connexion/déconnexion. Certains ppl pourraient faire valoir que ce soit un bon usage pour une aide, mais il fonctionne pour moi:

/// <summary> 
    /// For the global MasterPage's footer 
    /// </summary> 
    /// <returns></returns> 
    public static string FooterEditLink(this HtmlHelper helper, 
     System.Security.Principal.IIdentity user, string loginText, string logoutText) 
    { 
     if (user.IsAuthenticated) 
      return System.Web.Mvc.Html.LinkExtensions.ActionLink(helper, logoutText, "Logout", "Account", 
       new { returnurl = helper.ViewContext.HttpContext.Request.Url.AbsolutePath }, null); 
     else 
      return System.Web.Mvc.Html.LinkExtensions.ActionLink(helper, loginText, "Login", "Account", 
       new { returnurl = helper.ViewContext.HttpContext.Request.Url.AbsolutePath }, null); 
    } 

..et Voilà comment je l'utilise dans la vue (vue partielle pour être exact):

<% =Html.FooterEditLink(HttpContext.Current.User.Identity, "Edit", "Logout (" + HttpContext.Current.User.Identity.Name + ")")%> 
0

Jetez un oeil à ce poste par Scott Mitchell

http://scottonwriting.net/sowblog/posts/14011.aspx

(Puisque vous dites « Html.ActionLink », qui est une instance de la classe UrlHelper Je suppose que vous êtes dans un contexte où vous don N'avez pas accès à une instance de la classe UrlHelper)

Questions connexes