在使用 WebAssembly Blazor、Swagger 和 Hangfire 应用程序时出现路由故障的问题,可能是因为 Blazor 的默认地址模式为 “/#/”,而 Swagger 和 Hangfire 使用的是普通的 “/” 地址模式,导致路由不匹配。解决方法可以在 Blazor 的 App.cs 文件中修改路由地址为普通的 “/” 模式,具体代码如下:
using Microsoft.AspNetCore.Components.WebAssembly.Hosting;
using Microsoft.Extensions.DependencyInjection;
using System.Threading.Tasks;
namespace MyWebAssemblyApp
{
public class Program
{
public static async Task Main(string[] args)
{
var builder = WebAssemblyHostBuilder.CreateDefault(args);
builder.RootComponents.Add("app");
builder.Services.AddBaseAddressHttpClient();
// 修改路由地址为 "/" 模式
builder.Services.AddRouting(options => options.LowercaseUrls = true)
.AddControllers();
builder.Services.AddSwaggerGen();
// 添加 Hangfire
builder.Services.AddHangfire(config => {
config.UseSqlServerStorage("");
});
await builder.Build().RunAsync();
}
}
}
同时,还需在 Index.html 文件中将标记改为以下代码:
这样就可以使路由地址正常匹配,解决了路由故障问题。
上一篇:app网站