相关疑难解决方法(0)

如何获取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);
Run Code Online (Sandbox Code Playgroud)

用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>
Run Code Online (Sandbox Code Playgroud)

我已经使用stackoverflow上推荐的代码连接了动态数据的验证.

当我回发到服务器时(我没有使用JSON只是表格帖子)我可以做更复杂的验证,如果出现问题,我可以使用ModelState.AddModelError("输入字段名称","我可怜的傻瓜打破了这个" ); 对于非动态字段,这适用于强类型或@ Html.ValidationMessage("输入字段名称")

但是我找不到将服务器端模型错误挂钩到动态内容的方法.

我有与客户端一起工作的span标签,它们完美地工作.但是,在服务器端验证失败并返回页面后,它们不会被挂钩.知道如何实现这个吗?

谢谢

asp.net-mvc jquery-validate asp.net-mvc-3 knockout.js

6
推荐指数
1
解决办法
2545
查看次数