问题背景为了避免重复验证逻辑,我遵循一种将服务器端ModelState错误推送到我的View模型(MVVMKnockoutJS)的模式。所以按照惯例,我的KOViewModel上的属性名称与我的Api公开和期望的属性相匹配,因此我可以使用我编写的一个小Knockout插件轻松地将一个映射到另一个。...Spend$问题我的问题是,当JSON.Net序列化我通过AJAX发送的JSON时,当它遇到异常时,它会将其添加到ModelStateas和ExceptiononModelError类。示例响应:{"message":"Therequestisinvalid.","modelState"
我一直没能找到一个Kendo+MVCWebAPI的例子,其中post/update方法返回验证错误。看起来没有可以使以下代码工作的Kendo扩展。publicHttpResponseMessagePost([ModelBinder(typeof(Prototype.WebApi.ModelBinders.DataSourceRequestModelBinder))][DataSourceRequest]DataSourceRequestrequest,Useruser){if(this.ModelState.IsValid){//save}returnRequest.CreateErr
当ModelState.IsValid为false时,如何确定ModelState中的哪些键包含错误?通常我只是将鼠标悬停在ModelState.Values列表中逐项检查错误计数>0。但现在我正在处理一个包含一些复杂对象列表的View,总共有252个ModelState项目(每个对象的每个项目每个列表的ModelState.Keys上都有一个条目)。那么,有没有更简单的方法来指出错误来源呢? 最佳答案 您可以检查ViewData.ModelState.Values集合并查看错误是什么。[Httpost]publicActionRe
我目前允许选择列表的初始值为“”。用户可以选择是否填写此选项或保留默认值。这个selectList作用于一个ID,ID被传递到我的Controller。但是,由于未选择int,ModelState的结果为False,因为输入是空字符串而不是int。我想将此空字符串的值更改为0。这将导致ModelState为True。我一直在查看ModelState字典类,以便我可以在检查ModelState之前更改键值对。但是,我一直无法成功使用它。https://msdn.microsoft.com/en-us/library/system.web.mvc.modelstatedictionary(
我已尝试完成这项工作,并进行了多次google/stackoverflow搜索,但一点运气都没有。我有一个简单的模型:publicclassMovieModel{publicstringId{get;set;}[Required][StringLength(100)]publicstringName{get;set;}}Controller中的一个方法://POST:api/MoviespublicIHttpActionResultPost([FromBody]MovieModelmovieModel){if(ModelState.IsValid){//Code}}和一个测试方法(是一
有没有办法检查ASP.NetMVC5中的特定字段是否存在验证消息。我需要以Razaor形式检查这个目前是IsNullOrEmpty,但我认为即使没有验证错误,ValidationMessage也会返回一些html标签?仅当验证消息存在时我才需要显示一个div,即对于特定字段的验证失败。 最佳答案 您可以通过ViewData的属性访问ModelState,以便在输出任何HTML之前检查验证错误:@if(!ViewData.ModelState.IsValid){@Html.ValidationMessageFor(...)}编辑:或者
我有一个服务,它有一个在触发某个Controller方法时调用的方法。我的服务返回一个自定义结果对象PlacementResult,我想在其中将可能发生(验证)的错误传回Controller方法。PlacementResult是否应该有一个ModelState或ModelStateDictionary来将错误传回Controller(并最终查看)?我如何将它们串在一起?最后,我如何将ModelState/ModelStateDictionary(您告诉我应该选择哪个)放回View中(突出显示相应的文本框、显示错误消息等)?谢谢! 最佳答案
刷新模型状态您好,我有一个关于ASP.NETMVCController中的ModelState的问题。当用户从View中选择某个选项时,“认证”的开始日期和结束日期将根据输入的其他日期设置。问题是认证日期返回为null,而我们的CertificationMetaData类将字段指定为[Required],因此一旦加载操作,ModelState就会无效。手动删除ModelSate错误可以让这个工作,但我想知道是否有更好的方法来做到这一点?有没有办法刷新ModelState?我应该让字段不需要吗?还是应该使用javascript从View中添加日期值?publicActionResultC
在我的Controller中发布表单时,我会进行以下检查:if(ModelState.IsValid)如果模型无效,则会将错误添加到ModelState。然后将模型传递给带有验证摘要的View。但是,我想从jQueryready处理程序中检查ModelState是否有错误,这样我就可以在表单有错误时添加一些额外的行为。这可能吗? 最佳答案 你可以吐出全局javascript变量:varisValid=@Html.Raw(Json.Encode(ViewData.ModelState.IsValid));然后:$(function()
我正在尝试使用ASP.NETMVC4和MongoDB创建一个基本的电影数据库。我的问题出在我的MovieController的POST更新方法中。[HttpPost]publicActionResultUpdate(Moviemovie){if(ModelState.IsValid){_movies.Edit(movie);returnRedirectToAction("Index");}returnView();}ModelState包含电影的Id字段(它是一个ObjectId对象)的错误并抛出以下异常:{System.InvalidOperationException:Thepar