在@helper中使用Html.Encode时的NRE

时间:2011-03-06 05:09:41

标签: asp.net-mvc asp.net-mvc-3 razor

当从另一个cshtml调用这个帮助器时,我在编码行上得到一个Null Pointer Exception。

@helper ShowDefinitionText(String text)
{    
    <b>Definition:</b>
    <p>
    @Html.Encode("dogs")
    </p>
}

在帮助程序中使用Html。*是不合法的吗?

感谢。

1 个答案:

答案 0 :(得分:4)

您需要将其作为参数传递:

@helper ShowDefinitionText(String text, HtmlHelper htmlHelper)
{    
    <b>Definition:</b>
    <p>
        @htmlHelper.Encode("dogs")
    </p>
}

并且从视图调用帮助程序时提供有效的实例:

@ShowDefinitionText("some text", Html)

此外,如果你只是进行HTML编码,你可能不需要助手,因为@ Razor运算符已经这样做了:

@helper ShowDefinitionText(String text)
{    
    <b>Definition:</b>
    <p>
        @text
    </p>
}