Razor 无法在.NET Core中.cshtml的本地函数中使用标记

Razor 无法在.NET Core中.cshtml的本地函数中使用标记,razor,asp.net-core-3.1,Razor,Asp.net Core 3.1,我正在尝试将一个项目从.NET Framework迁移到.NET Core 3.1 .NET Core不支持@helper函数,本地或从App_代码。在网上查看之后,我发现的一个替代方法是使用 //本地函数 @{ 无效RenderName(字符串名称) { 名称:@Name } RenderName(“圣雄甘地”); RenderName(“小马丁·路德·金”); } //@函数 @{ RenderName(“圣雄甘地”); RenderName(“小马丁·路德·金”); } @功能{ 私有vo

我正在尝试将一个项目从.NET Framework迁移到.NET Core 3.1

.NET Core不支持@helper函数,本地或从App_代码。在网上查看之后,我发现的一个替代方法是使用

//本地函数
@{
无效RenderName(字符串名称)
{
名称:@Name

} RenderName(“圣雄甘地”); RenderName(“小马丁·路德·金”); } //@函数 @{ RenderName(“圣雄甘地”); RenderName(“小马丁·路德·金”); } @功能{ 私有void RenderName(字符串名称) { 名称:@Name

} }
但是,当我将它们复制粘贴到.cshtml文件中时,这两个选项都不会编译。我正在使用Visual Studio 2019(版本16.4.2)。我得到了标记“预期语句”周围的编译器错误


我不希望此代码在.NET Framework中工作,但我发现它令人困惑,因为我是从.NET Core 3.1的Microsoft官方文档中复制/粘贴的。

当我将您发布的代码粘贴到.cshtml文件中时,它工作正常。@MOSCODE您的.cshtml文件中有intellisense下划线吗?我刚刚试着运行我的代码,它实际上运行正常(因为它生成了正确的html标记),但intellisense将其突出显示为错误。我已经编辑了我的原始帖子,添加了一张图片以使其更清晰。在.NET5中也确认了这种行为。是的,它可以编译,是的,它可以运行,但intellisense只是疯了。当我将你发布的代码粘贴到我的.cshtml文件中时,它工作了。@MOSCODE你的.cshtml文件中有intellisense下划线吗?我刚刚试着运行我的代码,它实际上运行正常(因为它生成了正确的html标记),但intellisense将其突出显示为错误。我已经编辑了我的原始帖子,添加了一张图片以使其更清晰。在.NET5中也确认了这种行为。是的,它编译,是的,它运行,但Intelissense只是出了个大问题
// local function
@{
    void RenderName(string name)
    {
        <p>Name: <strong>@name</strong></p>
    }

    RenderName("Mahatma Gandhi");
    RenderName("Martin Luther King, Jr.");
}

// @function
@{
    RenderName("Mahatma Gandhi");
    RenderName("Martin Luther King, Jr.");
}

@functions {
    private void RenderName(string name)
    {
        <p>Name: <strong>@name</strong></p>
    }
}