远程验证不在部分视图中工作

时间:2013-01-28 05:49:03

标签: asp.net-mvc

让我描述一下我的页面布局。我的页面上有一个拆分器,左侧是导航面板,右侧页面是内容。因此,当用户单击面板上的节点时,内容将显示在右侧。 问题是当用户在显示的内容上提供值时,远程验证未触发。当页面不是局部视图并且它正在工作时我尝试了这个。

加载局部视图时,这是脚本。

var onPanelItemSelect = function (e) {

    var windowPath;

    windowPath = $(e.item).attr('data-value');

    if (windowPath != '#') {

        $.ajax({
            type: 'GET',
            url: windowPath,
            success: function (data) {
                $('#right_pane').html(data);                                
            }
        });
    }

    return false;
}

5 个答案:

答案 0 :(得分:0)

基本上,我觉得如果使用相同的模型绑定主页面和部分页面,问题也可能是属性名称没有正确绑定。

例如,如果你有一个模型类(称为ModelClass),它具有两个面板的属性(称为ModelClass.LeftPanel和ModelClass.RightPanel)

LeftPanel可以有一个属性(TextProperty),用于绑定到右侧的部分页面。 你会期望它被命名为'RightPanel.TextProperty',但它实际上最终得到一个名称'TextProperty'。这也可能影响远程验证。

This Stackoverflow问题描述了我认为的问题,以及它的各种解决方案。

希望这有帮助。

答案 1 :(得分:0)

解决了问题,如果有人有更好的答案,我会打开。在每个视图的标题上,我附加了验证和不显眼的脚本。

答案 2 :(得分:0)

试试这个:

变化

success: function (data) {
$('#right_pane').html(data);                                
}

success: function (data) {
$('#right_pane').html(data);
jQuery.validator.unobtrusive.parse("#right_pane");                                
}

答案 3 :(得分:0)

请在部分页面中添加对validate.min.js和validate.unobtrusive.js的引用。 它为我工作。

P.S:我来不及了:)

答案 4 :(得分:-1)

我的文章有远程验证的描述性代码,您可以查看它。

Remote Validation Article