asp.net – 使用WebAPI时重新验证模型(TryValidateModel等效)
发布时间:2020-05-23 09:39:54 所属栏目:asp.Net 来源:互联网
导读:使用vanilla MVC,我可以使用TryValidateModel重新验证我的模型. TryValidateModel方法似乎不适用于WebAPI.如何在使用WebAPI时重新验证我的模型? 我知道已经有一段时间了,但是这个问题仍然有效.因此,我认为我应该分享我对这个问题的解决方案. 我决定自己实现T
|
使用vanilla MVC,我可以使用TryValidateModel重新验证我的模型. TryValidateModel方法似乎不适用于WebAPI.如何在使用WebAPI时重新验证我的模型? 解决方法我知道已经有一段时间了,但是这个问题仍然有效.因此,我认为我应该分享我对这个问题的解决方案.我决定自己实现TryValidateModel(对象模型),基于System.Web.Mvc.Controller.cs中的实现 问题是mvc的TryValidateModel内部使用了自己的HttpContext和ModelState.如果你去和两者相媲美,它们非常相似…… 能够使用我们自己的HttpContext存在一个可以用于它的HttpContextWrapper. using System.Web.ModelBinding;
protected internal bool TryValidateModel(object model)
{
return TryValidateModel(model,null /* prefix */);
}
protected internal bool TryValidateModel(object model,string prefix)
{
if (model == null)
{
throw new ArgumentNullException("model");
}
ModelMetadata metadata = ModelMetadataProviders.Current.GetMetadataForType(() => model,model.GetType());
var t = new ModelBindingExecutionContext(new HttpContextWrapper(HttpContext.Current),new System.Web.ModelBinding.ModelStateDictionary());
foreach (ModelValidationResult validationResult in ModelValidator.GetModelValidator(metadata,t).Validate(null))
{
ModelState.AddModelError(validationResult.MemberName,validationResult.Message);
}
return ModelState.IsValid;
} (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net – 从Owin WebApi2返回描述性401消息
- nuget-package – 如何创建和使用ASP.NET vNext类库NuGet包
- asp.net文件上传示例分享
- asp.net-mvc – 从WebAPI生成MVC控制器操作的路由URL
- asp.net – 如何在没有查找AspNetUserRoles表的情况下获取W
- asp.net-mvc – 无法加载文件或程序集’System.Web.WebPage
- asp.net – 使用OAuth在Web API中进行身份验证
- 使用WCAT对ASP.NET / IIS进行压力测试
- 在razorview中显示checkboxfor的文本
- ASP.NET Response.Cache.SetNoStore()与Response.Cache.Set
推荐文章
站长推荐
- asp.net mvc – asp.net mvc Html.ActionLink()保
- asp.net – 让另一个程序员接管现有项目
- asp.net – 授权问题 – 匿名用户无法访问.jpeg或
- asp.net – 如何通过代码显示无
- asp.net-mvc – 无法更改关系,因为一个或多个外键
- ASP.NET core Web中使用appsettings.json配置文件
- asp.net-mvc-4 – Azure Blob 400创建容器时的错
- .net – HttpHandler在IIS 7中不起作用
- 如何杀死会话或会话ID(ASP.NET/C)
- asp.net – Glass Mapper打破了图像字段的标准值
热点阅读
