【问题标题】:Creating a index page to go to on launch for ASP.Net Core Web API Project为 ASP.Net Core Web API 项目创建要在启动时转到的索引页面
【发布时间】:2022-01-17 04:12:12
【问题描述】:

基本上,当我创建项目并创建一个功能性 API 时,用户可以从数据库中创建、删除等信息并运行它,我得到了可用于测试该 API 的 swagger UI。

现在我知道它有效,我想开始在网站上实际构建页面,而不是大摇大摆。但是,即使我尝试将 web.config 文件中的默认页面设置为我的 Index.cshtml,它也会大摇大摆。

基本上我的问题是,我该如何改变这个?

【问题讨论】:

    标签: asp.net asp.net-core asp.net-web-api swagger-ui


    【解决方案1】:

    首先,您需要删除 swagger 启动设置。进入 Properties 文件夹并打开 launchSettings.json 文件,删除或清除 launchUrl 属性。

    然后,您可以创建一个wwwroot 文件夹并添加默认页面:在默认页面中,您可以添加超链接以导航到swagger UI。

    之后,将以下代码添加到 Configure 方法中(如果您使用的是 Asp.net 6,则可以将它们添加到 Program.cs 文件中):

            app.UseHttpsRedirection();
    
            var options = new DefaultFilesOptions();
            options.DefaultFileNames.Clear();
            options.DefaultFileNames.Add("mydefault.html");
            app.UseDefaultFiles(options);
    
            app.UseStaticFiles();
    
    
            app.UseRouting();
    

    最后,运行API应用,结果如下:

    另外,如果您使用的是MVC视图,您可以参考以下步骤:

    【注意】使用这种方法,还需要去掉launch设置相关的swagger。

    1. 使用索引操作添加 HomeController。

    2. 添加索引视图页面

    3. 在ConfigureServices中注册控制器并查看服务:

       services.AddControllersWithViews();
      
    4. 配置端点

       app.UseEndpoints(endpoints =>
       {
           endpoints.MapControllers();
           endpoints.MapControllerRoute(name: "default",
          pattern: "{controller=Home}/{action=Index}/{id?}");
      
       });
      

    然后,当运行 API 应用程序时,它会显示 Home Controller Index View 页面。

    【讨论】:

      【解决方案2】:

      首先,在项目根目录中创建一个名为 wwwroot 的目录 - 它可以是任何名称,并在其中添加您的 HTML 文件 - 您需要一个 index.html 文件。如果您使用的是 .NET 5,请修改您的 startup.cs,如果您使用的是 .NET 6,请修改您的 program.cs 并添加以下代码。

      app.UseDefaultFiles();
      app.UseStaticFiles(new StaticFileOptions() 
      {
          FileProvider = new PhysicalFileProvider(
              Path.Combine(Directory.GetCurrentDirectory(), @"wwwroot"))
      });
      

      现在您运行应用程序,您将能够在浏览器中看到 index.html。注意:有时即使您更改文件,浏览器也会缓存 swagger UI - 要解决此问题,请打开浏览器开发人员工具并右键单击重新加载/刷新按钮 - 您将获得 3 个选项,选择 Empty Cache and Hard Reload 选项。它会解决你的问题。

      【讨论】:

        猜你喜欢
        • 2021-02-24
        • 2018-11-11
        • 2017-05-02
        • 2016-12-08
        • 2019-07-11
        • 1970-01-01
        • 2020-10-24
        • 1970-01-01
        • 2021-08-11
        相关资源
        最近更新 更多