2011-10-18 3 views
6

J'ai créé un fichier .cshtml Razor global dans le dossier App_Code de mon projet MVC pour déclarer les fonctions @helper. Le problème est que je ne peux pas utiliser Html.ActionLink (ou les autres extensions) dans les fonctions d'aide. J'ai essayé d'importer les classes via un @using mais cela n'a pas fonctionné. Des idées?Html.ActionLink ne peut pas être utilisé dans l'assistant global Razor

+1

voir cette question - http://stackoverflow.com/questions/4710853/using-mvc-htmlhelper-extensions-from-razor-declarative-views –

Répondre

7

Vous pouvez ajouter la ligne suivante à votre aide, pour définir Html

var Html = ((System.Web.Mvc.WebViewPage)WebPageContext.Current.Page).Html; 

(Copied from this answer)

+0

nks, dommage qu'il n'y ait pas de meilleure solution :) – Marthijn

2

Suite à la réponse acceptée, de faire @Html disponible dans le fichier d'aide:

@using System.Web.Mvc.Html 

... 

@functions { 

    protected static new System.Web.Mvc.HtmlHelper Html 
    { 
     get 
     { 
      return ((System.Web.Mvc.WebViewPage)WebPageContext.Current.Page).Html;  
     } 
    } 
} 
Questions connexes