出现问题的原因可能是Blazor WASM和MVC的路由配置冲突。可以在Startup.cs中修改路由配置,将MVC的路由配置移到Blazor WASM配置后面,这样就可以避免冲突了。具体代码如下所示:
// Configure the app’s services and middleware public void Configure(IApplicationBuilder app, IWebHostEnvironment env) { if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); } else { app.UseExceptionHandler("/Error"); app.UseHsts(); }
// Add MVC middleware
app.UseRouting();
app.UseEndpoints(endpoints =>
{
endpoints.MapControllerRoute(
name: "default",
pattern: "{controller}/{action}/{id?}");
});
// Add Blazor WASM middleware
app.UseBlazorFrameworkFiles();
app.UseStaticFiles();
app.UseRouting();
app.UseEndpoints(endpoints =>
{
endpoints.MapFallbackToFile("index.html");
});
}
这里我们先添加了MVC的中间件,然后再添加Blazor WASM的中间件。这样,MVC的路由会先被处理,Blazor WASM的路由会在MVC之后被处理。这样就可以避免路由冲突问题了。