@helper 指令在 ASP.NET5 MVC 6 beta 4 中不再开箱即用。
@helper directive no longer works out of the box in ASP.NET5 MVC6 beta4.
自从我将我的 ASP.NET5 项目更新为 beta4(Visual Studio 2015 RC 中包含的项目)后,我的任何 Razor 视图使用助手,例如:
@helper foo()
{
<h2>Bar</h2>
}
导致以下错误:
错误 CS0103:名称 'helper' 在当前上下文中不存在。
是否不再支持 @helper
指令?有人可以指出有关此问题的任何有用信息吗?
@helper
指令自 beta 4 以来已被删除,因为它对其他 Razor 功能施加了太多限制:https://github.com/aspnet/Razor/issues/281。
编辑
需要明确的是:根据 GitHub 问题中的讨论,Microsoft 不打算在 ASP.NET 核心中恢复或替换 @helper
指令。
您可以使用带有视图模型的部分来实现相同的功能,而不是使用辅助方法。只需将相关参数传递到 Html.Partial 命令即可。
在 .Net Core 及更高版本中,您可以使用 function derivative 来达到相同的目的:
@functions {
private void RenderFoo()
{
return "<h2>Bar</h2>";
}
}
<div>From method: @{ RenderFoo(); }</div>
自从我将我的 ASP.NET5 项目更新为 beta4(Visual Studio 2015 RC 中包含的项目)后,我的任何 Razor 视图使用助手,例如:
@helper foo()
{
<h2>Bar</h2>
}
导致以下错误:
错误 CS0103:名称 'helper' 在当前上下文中不存在。
是否不再支持 @helper
指令?有人可以指出有关此问题的任何有用信息吗?
@helper
指令自 beta 4 以来已被删除,因为它对其他 Razor 功能施加了太多限制:https://github.com/aspnet/Razor/issues/281。
编辑
需要明确的是:根据 GitHub 问题中的讨论,Microsoft 不打算在 ASP.NET 核心中恢复或替换 @helper
指令。
您可以使用带有视图模型的部分来实现相同的功能,而不是使用辅助方法。只需将相关参数传递到 Html.Partial 命令即可。
在 .Net Core 及更高版本中,您可以使用 function derivative 来达到相同的目的:
@functions {
private void RenderFoo()
{
return "<h2>Bar</h2>";
}
}
<div>From method: @{ RenderFoo(); }</div>