我正在嘗試編寫一個自定義驗證屬性,該屬性將根據模型的布爾屬性有條件地要求字段。如何獲取MVC3中的自定義IClientValidatable使用的模型屬性的id
我有我的屬性實現IClientValidatable。我有要檢查的屬性的名稱,但我不知道如何獲取目標屬性的客戶端ID。
public IEnumerable<ModelClientValidationRule>
GetClientValidationRules(ModelMetadata metadata,
ControllerContext context)
{
var clientTarget = ?????;
var rule = new ModelClientValidationRule()
{
ErrorMessage =
FormatErrorMessage(metadata.DisplayName ?? metadata.PropertyName),
ValidationType = "requiredif"
};
rule.ValidationParameters["target"] = clientTarget;
yield return rule;
}
的JavaScript:
$.validator.addMethod("requiredif", function (value, element, target)
{
//check on value of target
});
$.validator.unobtrusive.adapters.addSingleVal("requiredif", "target");
我怎樣才能得到目標物業的客戶ID,以便客戶端的JavaScript可以在值檢查?
它看起來像[MVC萬無一失驗證](https://foolproof.codeplex.com/SourceControl/latest#Foolproof/RequiredIf.cs)所做的那樣是完全忽略該ID,而是傳遞一個生成的密鑰值對非常識別該字段。 – KyleMit