前几天在构建一些东西时,我突然需要一条可以输出一些 JSON 数据的路由。我不需要Umbraco的任何东西,只需要一些普通的旧(现代!)dotnet - 是的,这是Umbraco 9+的。
我以为我必须注册路由并且我必须添加一个路由toin,但是..令我惊讶的是:这些都不需要,很好,很容易,并且包含在一个单一文件中。Startup.cs
ReservedPaths
appSettings.json
.cs
因此,事不宜迟,下面是以下示例:
using Microsoft.AspNetCore.Mvc; namespace Cultiv.Controllers; [ApiController] [Route("api/[controller]")] [Produces("application/json")] public class GreetMeController : ControllerBase { [HttpGet] public JsonResult Get([FromQuery]string name) { var value = new MyModel { Introduction = "Hello", Name = string.IsNullOrWhiteSpace(name) ? "World" : name }; return new JsonResult(value); } } public class MyModel { public string Introduction { get; set; } public string Name { get; set; } }
这里有趣的部分是属性,其中将被替换为控制器名称,因此路由变为并且该方法将响应传入的任何请求。Route
[controller]
GreetMe
api/GreetMe
Get
Get
这会产生一个很好的 JSON 字符串响应,其中包含适当的响应标头:application/json