- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有 WebAPI (.NET Core) 并使用 FluentValidator 来验证模型,包括更新。
我使用 PATCH 动词并有以下方法:
public IActionResult Update(int id, [FromBody] JsonPatchDocument<TollUpdateAPI> jsonPatchDocument)
{
public class TollUpdateFluentValidator : AbstractValidator<TollUpdateAPI>
{
public TollUpdateFluentValidator ()
{
RuleFor(d => d.Date)
.NotNull().WithMessage("Date is required");
RuleFor(d => d.DriverId)
.GreaterThan(0).WithMessage("Invalid DriverId");
RuleFor(d => d.Amount)
.NotNull().WithMessage("Amount is required");
RuleFor(d => d.Amount)
.GreaterThanOrEqualTo(0).WithMessage("Invalid Amount");
}
}
services.AddTransient<IValidator<TollUpdateAPI>, TollUpdateFluentValidator>();
最佳答案
您将需要手动触发验证。
您的操作方法将是这样的:
public IActionResult Update(int id, [FromBody] JsonPatchDocument<TollUpdateAPI> jsonPatchDocument)
{
// Load your db entity
var myDbEntity = myService.LoadEntityFromDb(id);
// Copy/Map data to the entity to patch using AutoMapper for example
var entityToPatch = myMapper.Map<TollUpdateAPI>(myDbEntity);
// Apply the patch to the entity to patch
jsonPatchDocument.ApplyTo(entityToPatch);
// Trigger validation manually
var validationResult = new TollUpdateFluentValidator().Validate(entityToPatch);
if (!validationResult.IsValid)
{
// Add validation errors to ModelState
foreach (var error in validationResult.Errors)
{
ModelState.AddModelError(error.PropertyName, error.ErrorMessage);
}
// Patch failed, return 422 result
return UnprocessableEntity(ModelState);
}
// Map the patch to the dbEntity
myMapper.Map(entityToPatch, myDbEntity);
myService.SaveChangesToDb();
// So far so good, patch done
return NoContent();
}
关于api - FluentValidator 和 JsonPatchDocument,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56344275/
我有 WebAPI (.NET Core) 并使用 FluentValidator 来验证模型,包括更新。 我使用 PATCH 动词并有以下方法: public IActionResult U
想要发布一组对象,其中对象具有 JsonPatchDocument 作为其中的属性,如下面的代码。但是,这是否受支持或为什么会发生错误? public class Person { publi
我正在尝试使用 JsonPatchDocument 替换列表中的对象,但是当我尝试使用正确的路径访问集合的成员时出现异常,这是我的代码: var oppfour = new Operation
鉴于我有两个相同类型的 c# 对象,我想比较它们以创建一个 JsonPatchDocument。 我有一个这样定义的 StyleDetail 类: public class StyleDetail
我正在尝试使用 JsonPatch在 ASP.NET Core 中处理模型的部分更新,但在将 PATCH 发送到 Web API Controller 操作时遇到绑定(bind)问题: 我正在使用一个
我在 Microsoft 文档和许多示例中看到他们调用 JsonPatchDocument.ApplyTo(patchObject, ModelState),但我似乎无法让它以这种方式构建。我收到
我正在尝试使用 Json 补丁来更新存储在 Entity Framework 数据上下文中的实体。 我有这样的实体类 - public class Customer { public Guid
我可以使用JsonConvert.SerializeObject()序列化JsonPatchDocument模型,但是结果类型是字符串,如何转换成普通数组类型?或者如何将 JsonPatchDocum
我正在制作 Core 3.1 Web API 并使用 JsonPatch创建 PATCH 操作。我有一个名为 Patch 的操作其中有一个 JsonPatchDocument范围。这是 Action
我有一个带有多个补丁操作的 AspNetCore-WebApi-Project,它在 Core 2.2 中运行良好。迁移到 Core 3 后 [FromBody] JsonPatchDocument一
我正在使用 JsonPatchDocument 更新我的实体,如果 JSON 如下所示,则效果很好 [ { "op": "replace", "path": "/leadStatus", "val
我是一名优秀的程序员,十分优秀!