Asp net core 在运行时读取或写入视图
Posted
技术标签:
【中文标题】Asp net core 在运行时读取或写入视图【英文标题】:Asp net core read or write views at runtime 【发布时间】:2021-06-24 07:09:39 【问题描述】:我有一个 asp .net 核心项目。在运行时,我想在编辑器中读取和修改我的视图文件夹中的视图,同时我想保存它们并立即将它们反映在网站上。
我可以使用熟悉的文件读写方法来读取和更新视图吗?我可以在运行时执行此操作吗? 我该怎么做?最好的方法是什么?
【问题讨论】:
【参考方案1】:您可以安装Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation
NuGet 包来启用运行时编译。
1.安装Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation
NuGet 包。
2.更新项目的Startup.ConfigureServices
方法以包含对AddRazorRuntimeCompilation
的调用:
services.AddControllersWithViews().AddRazorRuntimeCompilation();
参考:
https://docs.microsoft.com/en-us/aspnet/core/mvc/views/view-compilation?view=aspnetcore-5.0&tabs=visual-studio#enable-runtime-compilation-in-an-existing-project
【讨论】:
嗨 Rena,首先,非常感谢您的回答。我想根据你的回答做一个测试。但是,我无法弄清楚如何做到这一点。我安装您指定的软件包就足够了吗?安装此包后,如何读写相关视图?我目前正在使用 streamreader 从视图文件夹中读取它并使用 streamwriter 再次写入它,我得到了我想要的。但是,我不知道当我把它扔到现场时它是否会给我带来问题。我想知道最好的方法。 嗨@SerkanCA,在您安装包并在启动中添加此服务后,如果您在visual studio中更改视图或后端代码,您可以在运行时看到更改。 那我就问你这个问题。假设我按照您所说的安装了软件包并将它们添加到启动中;现在我有一个管理面板。在这个管理面板中,我列出了 views 文件夹中的所有视图。当用户在这里选择一个视图时,我在代码编辑器中显示它。稍后,当用户更改此代码并说保存时,我将相关更改写入现有视图文件与 streamwriter。在这种情况下,是否真的不会因为我在运行时写入该视图而收到任何错误?以上是关于Asp net core 在运行时读取或写入视图的主要内容,如果未能解决你的问题,请参考以下文章
如何让asp.net core mvc发布时候不编译cshtml视图
.NET Core 3.0:Razor 视图不会在更改时自动重新编译
详解Asp.Net Core 2.1+的视图缓存(响应缓存)