asp.net-mvc – 如何获取ModelState.AddModel错误绑定到knockout
我已使用以下代码设置Knockoutjs以动态创建可编辑的值列表:
var requirementModel = function() { var self = this; self.requirementtypes = ko.observableArray(@Html.Interpret(Model.requirementtypes)); self.requirementid = ko.observable(@Html.Interpret(Model.requirementid)); self.AddRequirementType = function() { self.requirementtypes.push({ requirementtypeid: null,number: "",requirementid: 0 }); }; self.RemoveType = function(Type) { self.requirementtypes.remove(Type); }; self.hookUpValidation = function() { $.validator.unobtrusive.parseDynamicContent('.dynamicData'); }; }; var viewModel = new requirementModel(); ko.applyBindings(viewModel); 用html: <div class="small-box dynamicData" data-bind="template:{ name: 'requirementType-template',foreach: requirementtypes,afterRender:$root.hookUpValidation }" ></div> <button data-bind='click: AddType'>Add Type</button> 我已经使用stackoverflow推荐的代码连接了动态数据的验证. 当我回发到服务器时(我没有使用JSON只是表格帖子)我可以做更复杂的验证,如果出现问题,我可以使用ModelState.AddModelError(“输入字段名称”,“我可怜的傻瓜打破了这个” );对于非动态字段,这适用于强类型或@ Html.ValidationMessage(“输入字段名称”) 但是我找不到将服务器端模型错误挂钩到动态内容的方法. 我有与客户端一起工作的span标签,它们完美地工作.但是,在服务器端验证失败并返回页面后,它们不会被挂钩.知道如何实现这个吗? 谢谢 解决方法
我刚刚为我当前的工作项目编写了这个代码.我不能发布代码规则的代码.就像上面的评论所说,没有一种优雅的方式.我将描述我们用于显示错误消息的步骤.
首先,修改动态生成的html,使每个html具有与MVC3 @ Html.ValidationFor(…)控件等效的代码.接下来,每个动态控件都需要有一个id字段,您可以使用该字段来定位控件以添加错误消息. 我采取的步骤是,在控制器收到ajax数据进行验证后开始 – >验证接收的数据模型 Class AjaxResults{ bool success {get; set;); object returnedData {get; set;); } >如果模型验证,则返回AjaxResults,其中success = true且returnedData =“validated data model” 在最后一步中,您可以使用jquery验证消息显示错误代码.如果你想这样做,那么在jquery.unobtrusive.valiation.js文件中 >添加代码以复制文件中onError方法的功能. 这是一个相当长的过程.但代码很容易模块化为可调用的例程.我们目前在生产代码中使用它,在实践中,它成为我们框架代码的一部分. 希望这可以帮助. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net – 如何设置通配符(*)子域?
- asp.net – default.aspx中的“StartTag:invalid element
- asp.net-mvc – 自定义HtmlHelper扩展方法在View中不可用?
- asp.net-mvc – 如何根据用户在ASP.NET MVC中的选择对列表进
- asp.net-mvc – MVC2 Binding不适用于Html.DropDownListFor
- 在ASP.NET MVC中DRY原理实际上是什么样的?
- 优化 .net core 应用的 dockerfile
- 提高ASP.NETWeb应用性能的24种方法和技巧
- .net – 如何组织资源文件?
- 4.翻译系列:EF 6 Code-First默认约定(EF 6 Code-First系列