asp.net MVC 5 Html helper 中的 TextArea 问题

面料

我正在尝试在 Asp.net MVC 5 中做一个非常简单的 Html 助手:

@helper GetMyTextArea()
{
    @Html.TextArea("myText")
}

然后我尝试将它包含在我的视图中:(助手MyHelp.cshtml位于名为 的文件中,位于App_Code文件夹中)

@MyHelp.GetMyTextArea()

如果我现在呈现我的视图,我会收到以下异常:

System.NullReferenceException:System.Web.WebPages.HelperPage.Html.get 返回 null。

有人知道这个问题吗?我想我可以用 a 解决它,partial view但这应该不是 html helper 的问题。

山本哲也

@helperApp_Code文件夹中使用时存在某些限制,例如不能直接访问标准HtmlHelper方法(您需要通过将其包含在您的方法中来手动传递它,例如@helper GetMyTextArea(HtmlHelper Html))。您可以添加@functions允许直接访问HtmlHelper方法的选项:

@functions {
    public static WebViewPage page = (PageContext.Page as WebViewPage);
    public static HtmlHelper<object> html = page.Html;
}

因此,MyHelp.cshtml内容应该是这样的:

// adapted from /a/35269446/
@functions {
    public static WebViewPage page = (PageContext.Page as WebViewPage);
    public static HtmlHelper<object> html = page.Html;
}

@helper GetMyTextArea()
{
    @Html.TextArea("myText")
}

之后,您可以在视图页面中调用辅助方法,@MyHelp.GetMyTextArea()而无需HtmlHelper手动传递

类似问题:

Razor:声明性 HTML 助手

在 App_Code 中的共享 @helper 中使用 @Html

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章