如何在行动中要求参数

时间:2016-09-16 16:20:37

标签: asp.net-core asp.net-core-mvc

我想验证操作中是否存在参数。

public string PorCarrera([Required] DateTime fechaDesde, [Required] DateTime fechaHasta, string carrera = null) {
            return InformacionInscripcionesViewModel.GetTotalesInscripcionesPorCarrera(fechaDesde, fechaHasta, carrera);
        }

我希望框架在没有参数的情况下调用动作时抛出BadRequest,但它没有发生。

所有示例都讨论modelState.IsValid,但我没有任何代表此数据的模型,因为这些只是对数据库的查询。

1 个答案:

答案 0 :(得分:1)

您需要做一个模型来表示您的参数。像这样:

public class PorCarreraModel
{
    [Required]
    DateTime fechaDesde { get; set; }
    [Required]
    DateTime fechaHasta { get; set; }
    string carrera { get; set; }
}

然后你可以让你的控制器动作如下:

public IActionResult PorCarrera(PorCarreraModel model) {
     if(ModelState.IsValid == false)
     {
          return BadRequest(ModelState);
     }
     string totals = InformacionInscripcionesViewModel.GetTotalesInscripcionesPorCarrera(model.fechaDesde, model.fechaHasta, model.carrera);
     return Content(totals);
}