在Blazor中,是能够支持MVC的,因此可以在Bootstrap Blazor项目中开发Controller控制器,实现API接口。
下面使用BB创建的模板(模板创建详见官网:SiteTitle)进行演示(本文章使用BootstrapBlazorApp项目进行演示):
1、在Program.cs文件中添加下面两行代码:
// 注入控制器
builder.Services.AddControllers();
// 将控制器映射到HTTP请求
app.MapControllers();
添加后的模板中的完整代码如下:
using BootstrapBlazorApp.Components;
var builder = WebApplication.CreateBuilder(args);
// Add services to the container.
builder.Services.AddRazorComponents()
.AddInteractiveServerComponents()
.AddInteractiveWebAssemblyComponents();
builder.Services.AddBootstrapBlazor();
// 注入控制器
builder.Services.AddControllers();
var app = builder.Build();
// Configure the HTTP request pipeline.
if (app.Environment.IsDevelopment())
{
app.UseWebAssemblyDebugging();
}
else
{
app.UseExceptionHandler("/Error", createScopeForErrors: true);
}
app.UseAntiforgery();
app.MapStaticAssets();
app.MapRazorComponents<App>()
.AddInteractiveServerRenderMode()
.AddInteractiveWebAssemblyRenderMode()
.AddAdditionalAssemblies(typeof(BootstrapBlazorApp.Client._Imports).Assembly);
// 将控制器映射到HTTP请求
app.MapControllers();
app.Run();
2、在NuGet包管理器中下载Microsoft.AspNetCore.Mvc:
3、在项目的根目录中创建Controllers文件夹,然后创建TestController.cs控制器进行测试,代码如下:
using Microsoft.AspNetCore.Mvc;
using RouteAttribute = Microsoft.AspNetCore.Mvc.RouteAttribute;
namespace BootstrapBlazorApp.Controllers
{
/// <summary>
/// 测试接口
/// </summary>
[Route("[controller]/[action]")]
public class TestController : Controller
{
[HttpGet]
public IActionResult Add(int i, int j)
{
int k = i + j;
return Json(new { res = k });
}
}
}
4、启动调用测试: