【发布时间】:2021-10-11 08:03:25
【问题描述】:
我有一个 API,其中还包含多个 Razor 页面。我想让这些剃须刀页面之一仅在开发期间可用,因为它是一些支持工具。
最好的方法是什么? 使用 IPageFilter? 在csproj文件中使用Condition属性排除内容文件?
感谢任何工作示例。
【问题讨论】:
标签: c# asp.net-core razor-pages
我有一个 API,其中还包含多个 Razor 页面。我想让这些剃须刀页面之一仅在开发期间可用,因为它是一些支持工具。
最好的方法是什么? 使用 IPageFilter? 在csproj文件中使用Condition属性排除内容文件?
感谢任何工作示例。
【问题讨论】:
标签: c# asp.net-core razor-pages
如果只需要屏蔽一个页面,可以直接在 Razor 页面中定义过滤器:
public class MyRazorPageModel : PageModel
{
private readonly IWebHostEnvironment _env; // using Microsoft.AspNetCore.Hosting;
public MyRazorPageModel (IWebHostEnvironment env) // Injected from ASP.NET Core
{
_env = env;
}
public void OnGet()
{
}
public override void OnPageHandlerExecuting(PageHandlerExecutingContext context)
{
// ASPNETCORE_ENVIRONMENT is not set to "Development" in Properties/launchSettings.json: return 404.
if (!_env.IsDevelopment()) // using Microsoft.Extensions.Hosting;
{
context.Result = NotFound();
}
}
}
如果要查看调试或发布模式,可以使用#if DEBUG。
【讨论】: