如何解决如何在c#中自定义请求[HttpGet]的名称
我已经创建了以下Web服务,并且可以通过以下方式访问它:
https://localhost:44311/valores/1
但是我想使用以下网址访问它:
https://localhost:44311/usuario/1
在网址中使用usuario
[HttpGet("{id:int}",Name ="usuario")]
public ActionResult<Usuario> Get(int id)
{
using (var db = new prueba2Context())
{
var usuario = db.Usuario.Where(x => x.Id == id).FirstOrDefault();
if (usuario == null)
{
return NotFound();
}
return Ok(usuario);
}
}
我是c#
的新手,如果您指出我做错了什么以及如何纠正它,我将不胜感激。
这是我的文件夹的结构。
解决方法
您似乎正在使用ASP.NET Core。一个典型的端点将像这样设置:
[ApiController,Route("api/[controller]")]
public class ComputationController : ControllerBase
{
// ...
[HttpPost,Route("beginComputation")]
[ProducesResponseType(StatusCodes.Status202Accepted,Type = typeof(JobCreatedModel))]
public async Task<IActionResult> BeginComputation([FromBody] JobParametersModel obj)
{
return Accepted(
await _queuedBackgroundService.PostWorkItemAsync(obj).ConfigureAwait(false));
}
[HttpGet,Route("computationStatus/{jobId}")]
[ProducesResponseType(StatusCodes.Status200OK,Type = typeof(JobModel))]
[ProducesResponseType(StatusCodes.Status404NotFound,Type = typeof(string))]
public async Task<IActionResult> GetComputationResultAsync(string jobId)
{
var job = await _computationJobStatusService.GetJobAsync(jobId).ConfigureAwait(false);
if(job != null)
{
return Ok(job);
}
return NotFound($"Job with ID `{jobId}` not found");
}
// ...
}
[ProducesResponseType]
属性用于文档框架,例如Swagger
。
我总是使用[Route]
属性来定义端点路径。
就您而言,我将其设置为:
[HttpGet,Route("usuario/{id}")]
[ProducesResponseType(StatusCodes.Status200OK,Type = typeof(Usuario))]
[ProducesResponseType(StatusCodes.Status404NotFound)]
public IActionResult GetUser(int id)
{
using (var db = new prueba2Context())
{
var usuario = await db.Usuario.Where(x => x.Id == id).FirstOrDefault();
if (usuario == null)
{
return NotFound();
}
return Ok(usuario);
}
}
,
更常见的用法是“路线”
喜欢
cameraView.setFirstPersonNavigationEabled(false)
`
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。