首页 > 解决方案 > 无法在 .NET Core 中的 .cshtml 中的本地函数中使用标记

问题描述

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

.NET Core 不支持本地或来自 App_Code 的 @helper 函数。在线查看后,我在此线程上找到的替代方法之一是使用本地函数

// 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>
    }
}

但是,当我将它们复制粘贴到 .cshtml 文件中时,这些替代方法都无法编译。我正在使用 Visual Studio 2019(版本 16.4.2)。我得到围绕标记的编译器错误,“预期声明”。

语法错误

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

标签: razorasp.net-core-3.1

解决方案


推荐阅读