我有一个ASP.NET Core 8.0 MVC项目,我遇到了使用VS代码的非常奇怪的行为。我一直在尝试更新一些路线和观点,由于某种原因,这并没有意识到我在路线上的变化。无论我改变了什么,它一直将其重定向到一个特定区域。我试图改变一切可能,但这不会纠正它。我终于在Vs 2022中开放了该项目,行为消失了,一切似乎都很正常。

问题描述 投票:0回答:1

update

点:
以下所有修改仅适用于视图文件,而不是路由或其他C#代码。
plaplease尝试在
launch.json
visual-studio-code asp.net-core-mvc asp.net-core-8
1个回答
1
投票

测试结果

launch.json

{
    // Use IntelliSense to learn about possible attributes.
    // Hover to view descriptions of existing attributes.
    // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "debug-hot-reload",
            "type": "coreclr",
            "request": "launch",
            "program": "dotnet",
            "args": [
                "watch",
                "--project",
                ".",
                "--verbose"
            ],
            "cwd": "${workspaceFolder}",
            "stopAtEntry": false,
            "serverReadyAction": {
                "action": "openExternally",
                "pattern": "\\bNow listening on:\\s+(https?://\\S+)"
            },
            "env": {
                "ASPNETCORE_ENVIRONMENT": "Development",
                "Key": "Value"
            },
            "sourceFileMap": {
                "/Views": "${workspaceFolder}/Views"
            }
        },
        {
            "name": ".NET Core Attach",
            "type": "coreclr",
            "request": "attach"
        }
    ]
}

这个似乎是一个已知的问题。如我们所知,在ASP.NET核心项目中,当.NET Coreversion <=5

时,页面的编译文件存储在

projectname.view.dll中。 enter image description hereversion >=6之后,视图文件存储在

projectname.dll

中。 相关文档:razor:编译器不再产生视图组装

这意味着在进行实时修改时,您必须再次编译才能实时更新。
Microsoft正式提供了下面的解决方案。

1。安装

Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation

nuget软件包。
2。在程序中调用Addrazorruntimecompilation.cs:
var builder = WebApplication.CreateBuilder(args);

builder.Services.AddRazorPages()
    .AddRazorRuntimeCompilation();
//  need tp add .AddRazorRuntimeCompilation() 
// builder.Services.AddControllersWithViews().AddRazorRuntimeCompilation();
    

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.