让我描述一下我的页面布局。我的页面上有一个拆分器,左侧是导航面板,右侧页面是内容。因此,当用户单击面板上的节点时,内容将显示在右侧。 问题是当用户在显示的内容上提供值时,远程验证未触发。当页面不是局部视图并且它正在工作时我尝试了这个。
加载局部视图时,这是脚本。
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;
}
答案 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)
我的文章有远程验证的描述性代码,您可以查看它。