我有2个局部视图。 编辑页面包含列var1,var2,var3。 编辑部分包含列varA,varB,var2,var3。
<div id="page-property" style="display:none;">
@Html.Partial("EditPage", new xxx.Domain.Entities.Page())
</div>
<div id="section-property" style="display:none">
@Html.Partial("EditSection", new xxx.Domain.Entities.Section())
</div>
对var2和var3进行首次自定义客户端验证测试(均为局部视图): 当var2 = var3时,EditPage自定义验证显示错误消息。 当var2 = var3时,EditSection自定义验证不会显示错误消息。
对EditPage(var1,var2)和EditSection(varA,varB)进行第二次自定义客户端验证测试: 当var1 = var2时,EditPage自定义验证显示错误消息。 当varA = varB时,EditSection自定义验证显示错误消息。
// The unlike function
$.validator.addMethod(
'unlike',
function (value, element, params) {
console.debug(element);
if (!this.optional(element)) {
var otherProperty = $('#' + params.otherproperty)
return (otherProperty.val() != value);
}
return true;
});
$.validator.unobtrusive.adapters.add(
'unlike', ['otherproperty', 'otherpropertyname'], function (options) {
var params = {
otherproperty: options.params.otherproperty,
otherpropertyname: options.params.otherpropertyname
};
options.rules['unlike'] = params;
options.messages['unlike'] = options.message;
});
由于两个局部视图的列名相同,因此第二个局部视图验证看起来不起作用。知道如何解决这个问题吗?
答案 0 :(得分:0)
我认为这是一个糟糕的设计,我认为你可以有一个基类
public class baseclass
{
var2,var3}
public class page
{
public baseclass base{get;set;}
var 1
}
public class section{
vara,varb,
public baseclass base{get;set;}
}
然后根据您的观点,您需要使用
editorFor(x=>x.base, Model.base)
并且您的编辑器将正常包含该类。
因此,您将保留验证