创建一个索引页面以在 ASP.Net Core Web API 项目启动时访问

Age*_*Co. 1 asp.net asp.net-web-api swagger-ui asp.net-core

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

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

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

Zhi*_* Lv 5

首先,您需要删除 swagger 启动设置。进入属性文件夹并打开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();
Run Code Online (Sandbox Code Playgroud)

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

在此输入图像描述

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

[注意] 使用此方法,仍然需要删除与swagger相关的启动设置。

  1. 添加带有索引操作的 HomeController。

  2. 添加索引视图页面

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

     services.AddControllersWithViews();
    
    Run Code Online (Sandbox Code Playgroud)
  4. 配置端点

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

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