Razor 无法在.NET Core中.cshtml的本地函数中使用标记
我正在尝试将一个项目从.NET Framework迁移到.NET Core 3.1 .NET Core不支持@helper函数,本地或从App_代码。在网上查看之后,我发现的一个替代方法是使用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
//本地函数
@{
无效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>
}
}