Sto costruendo un sito MVC3 molto semplice mentre imparo e sto riscontrando difficoltà con il seguente helper dichiarativo Razor html.Utilizzo di @Html all'interno di shared @helper in App_Code
All'interno RMB.cshtml all'interno della cartella App_Code:
@helper ReplaceCrLf(string strText)
{
@Html.Raw(Html.Encode(strText).Replace(Environment.NewLine, "<br />"));
}
Dentro la mia vista index.cshtml:
@RMB.ReplaceCrLf(Model.Post)
Questo mi dà un'eccezione riferimento null in Html nel aiutante, perché doesn' t sembra sapere di cosa si tratta. Posso aggirare questo problema passando Html dalla vista all'helper, ma mi stavo chiedendo se c'è un altro modo per i miei helper html condivisi di essere in grado di fare riferimento a Html senza che io debba passarlo a un altro aiuto che scrivo?
Per completezza, ecco la soluzione di lavoro:
In RMB.cshtml in App_Code
@helper ReplaceCrLf(string strText, System.Web.Mvc.HtmlHelper Html)
{
@Html.Raw(Html.Encode(strText).Replace(Environment.NewLine, "<br />"));
}
In considerazione index.cshtml
@RMB.ReplaceCrLf(Model.Post, Html)
Sulla base di questa [risposta] (http: //stackoverflow.com/questions/4451287/razor-declarative-html-helpers/4453637#4453637), attualmente è una limitazione di mettere Helpers personalizzati in AppCode cartella. –