Asp.net mvc 4 ServiceStack-MVC操作中未触发验证
我对以下DTO制定了一些验证规则:Asp.net mvc 4 ServiceStack-MVC操作中未触发验证,asp.net-mvc-4,servicestack,fluentvalidation,Asp.net Mvc 4,servicestack,Fluentvalidation,我对以下DTO制定了一些验证规则: [Route("/warranties/{Id}", "GET, PUT, DELETE")] [Route("/warranties", "POST")] public class WarrantyDto : IReturn<WarrantyDto> { public int Id { get; set; } public int StatusId { get; set; } public string AccountNu
[Route("/warranties/{Id}", "GET, PUT, DELETE")]
[Route("/warranties", "POST")]
public class WarrantyDto : IReturn<WarrantyDto>
{
public int Id { get; set; }
public int StatusId { get; set; }
public string AccountNumber { get; set; }
}
然后,当我发布保修期时,如果我没有输入帐号,验证似乎不起作用:
[POST("create")]
public ActionResult Create(WarrantyDto model)
{
if (!ModelState.IsValid) return View(model);
_warrantyService.Post(model);
return RedirectToAction("Index");
}
它似乎只是点击了\u warrantyService.Post(模型)代码>没有尝试首先验证,有什么想法吗?我相信ServiceStack会在其请求/响应管道中处理一些FluentValidation规则集。但是,在MVC控制器中,您必须处理要使用的规则集的传递。您还应该了解不在规则集中的规则是如何执行的,因为ServiceStack执行规则的方式与“标准”FluentValidation执行规则的方式不同
[POST("create")]
public ActionResult Create([CustomizeValidator(RuleSet = "POST")]WarrantyDto model)
{
if (!ModelState.IsValid) return View(model);
_warrantyService.Post(model);
return RedirectToAction("Index");
}
[POST("create")]
public ActionResult Create(WarrantyDto model)
{
if (!ModelState.IsValid) return View(model);
_warrantyService.Post(model);
return RedirectToAction("Index");
}
[POST("create")]
public ActionResult Create([CustomizeValidator(RuleSet = "POST")]WarrantyDto model)
{
if (!ModelState.IsValid) return View(model);
_warrantyService.Post(model);
return RedirectToAction("Index");
}