Razor @在ASP.NET5 MVC6 beta4中,helper指令不再是现成的。

Razor @在ASP.NET5 MVC6 beta4中,helper指令不再是现成的。,razor,asp.net-core,asp.net-core-mvc,Razor,Asp.net Core,Asp.net Core Mvc,自从我将ASP.NET5项目更新为beta4(Visual Studio 2015 RC附带的项目)以来,我使用帮助程序的任何Razor视图,例如: @helper foo() { <h2>Bar</h2> } @helper foo() { 酒吧 } 导致以下错误: 错误CS0103:当前上下文中不存在名称“helper” 是否不再支持@helper指令?有人能告诉我关于这个问题有什么有用的吗?自beta 4以来,@helper指令被删除,因为它对其他剃须刀功

自从我将ASP.NET5项目更新为beta4(Visual Studio 2015 RC附带的项目)以来,我使用帮助程序的任何Razor视图,例如:

@helper foo()
{
   <h2>Bar</h2>
}
@helper foo()
{
酒吧
}
导致以下错误:

错误CS0103:当前上下文中不存在名称“helper”


是否不再支持
@helper
指令?有人能告诉我关于这个问题有什么有用的吗?

自beta 4以来,
@helper
指令被删除,因为它对其他剃须刀功能施加了太多限制:

编辑

需要明确的是:根据GitHub问题中的讨论,Microsoft不打算将
@helper
指令带回或替换为ASP.NET Core中的指令。

您可以使用带有视图模型的分部来实现相同的功能,而不是使用助手方法。只需将相关参数传递到Html.Partial命令中。

无论如何,从第一天开始,查看帮助程序是个坏主意。这是我最讨厌的SO答案类型:它回答了问题,但在提供解决同一问题的正确方法的任何替代方案或指导方面完全没有用。“是什么取代了助手,或者更确切地说,应该用什么来代替它?”JonStory我明白你的意思。然而,在我提到的问题中,即使是微软也没有为这一功能提供任何替代品。不幸的是,没有任何替代品,这被认为是一个过时的功能。我想知道为什么在阅读本期杂志时,有必要发表这样的评论来澄清我刚才所说的话。不过,这正是问题所在——我不知道微软是否已经做出了替换,因此,在答案中包含这一点是很好的。请参见此处Eilon的答案中的示例:如果您在.NET Core 3+上,则调用自身的本地
void
方法将消除创建新分部的需要。