若ASP.Net Core - Razor WebApp页面中包含IFrame,可能会出现奇怪的行为,如页面在性能指标处突然停顿,IFrame中的内容不可见,或IFrame内容无法加载。这通常是由浏览器的安全限制引起的。为了解决此问题,需要禁用Iframe的安全限制。
解决方案如下: 1、在Web应用程序项目中添加Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation NuGet包。 2、在Startup.cs文件中使用以下代码添加Razor运行时编译:
public void ConfigureServices(IServiceCollection services)
{
services.AddControllersWithViews().AddRazorRuntimeCompilation();
}
3、在需要包含IFrame的Razor页面文件中添加以下代码:
@{
ViewData["Sandbox"] = "allow-modals allow-forms allow-popups allow-scripts allow-same-origin";
}
...
以上步骤将禁用IFrame的安全限制,使其能够正常工作。