【问题标题】:How to make razor page available only in development?如何使剃须刀页面仅在开发中可用?
【发布时间】:2021-10-11 08:03:25
【问题描述】:

我有一个 API,其中还包含多个 Razor 页面。我想让这些剃须刀页面之一仅在开发期间可用,因为它是一些支持工具。

最好的方法是什么? 使用 IPageFilter? 在csproj文件中使用Condition属性排除内容文件?

感谢任何工作示例。

【问题讨论】:

    标签: c# asp.net-core razor-pages


    【解决方案1】:

    如果只需要屏蔽一个页面,可以直接在 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

    【讨论】:

      猜你喜欢
      • 2020-11-06
      • 2020-04-15
      • 1970-01-01
      • 1970-01-01
      • 2021-10-22
      • 2020-11-11
      • 2021-10-27
      • 2020-09-21
      • 1970-01-01
      相关资源
      最近更新 更多