为 ASP.Net Core Web API 项目创建要在启动时转到的索引页面
Posted
技术标签:
【中文标题】为 ASP.Net Core Web API 项目创建要在启动时转到的索引页面【英文标题】:Creating a index page to go to on launch for ASP.Net Core Web API Project 【发布时间】:2022-01-17 04:12:12 【问题描述】:基本上,当我创建项目并创建一个功能性 API 时,用户可以从数据库中创建、删除等信息并运行它,我得到了可用于测试该 API 的 swagger UI。
现在我知道它有效,我想开始在网站上实际构建页面,而不是大摇大摆。但是,即使我尝试将 web.config 文件中的默认页面设置为我的 Index.cshtml,它也会大摇大摆。
基本上我的问题是,我该如何改变这个?
【问题讨论】:
【参考方案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。
使用索引操作添加 HomeController。
添加索引视图页面
在ConfigureServices中注册控制器并查看服务:
services.AddControllersWithViews();
配置端点
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
选项。它会解决你的问题。
【讨论】:
以上是关于为 ASP.Net Core Web API 项目创建要在启动时转到的索引页面的主要内容,如果未能解决你的问题,请参考以下文章
ASP.NET Core 实战:使用 ASP.NET Core Web API 和 Vue.js 搭建前后端分离项目
Asp.net core 3.1 保护 API 和 Web 应用程序
使用angular4和asp.net core 2 web api做个练习项目
无法在 IIS Express 中运行 ASP.NET Core Web API 项目
ASP.NET Core 3.1 / 5 WeatherForecast 示例 Web API 项目引发错误 404
ASP.NET Core Web API + Angular 仿B站 目的分析以及创建 WebAPI + Angular7 项目