Я создаю очень простой сайт MVC3, пока я учусь, и у меня возникают трудности со следующим декларативным помощником Razor html.
Внутри RMB.cshtml внутри папки App_Code:
@helper ReplaceCrLf(string strText)
{
@Html.Raw(Html.Encode(strText).Replace(Environment.NewLine, "<br />"));
}
В моем представлении index.cshtml:
@RMB.ReplaceCrLf(Model.Post)
Это дает мне исключение нулевой ссылки на Html в помощнике, потому что кажется, что он не знает, что это такое.Я могу обойти это, передав Html из представления помощнику, но мне было интересно, есть ли другой способ, с помощью которого мои общие помощники html могут ссылаться на Html без необходимости передавать его какому-либо помощнику, которого я пишу?
Для полноты, вот рабочий способ:
В RMB.cshtml в App_Code
@helper ReplaceCrLf(string strText, System.Web.Mvc.HtmlHelper Html)
{
@Html.Raw(Html.Encode(strText).Replace(Environment.NewLine, "<br />"));
}
В представлении index.cshtml
@RMB.ReplaceCrLf(Model.Post, Html)