創建一個自定義驗證屬性,我希望它也能在客戶端工作。下面是Model類mvc3自定義驗證屬性不驗證客戶端
public class CreditCardAttribute : ValidationAttribute, IClientValidatable
{
public override bool IsValid(object value)
{
var number = Convert.ToString(value);
return IsValidNumber(number);
}
private bool IsValidNumber(string number)
{
int[] DELTAS = new int[] { 0, 1, 2, 3, 4, -4, -3, -2, -1, 0 };
int checksum = 0;
char[] chars = number.ToCharArray();
for (int i = chars.Length - 1; i > -1; i--)
{
int j = ((int)chars[i]) - 48;
checksum += j;
if (((i - chars.Length) % 2) == 0)
checksum += DELTAS[j];
}
return ((checksum % 10) == 0);
}
public IEnumerable<ModelClientValidationRule> GetClientValidationRules(ModelMetadata metadata, ControllerContext context)
{
yield return new ModelClientValidationRule {
ErrorMessage = this.ErrorMessage,
ValidationType = "CreditCard"
};
}
}
的jQuery:
jQuery.validator.addMethod('CreditCardtest', function (value, element, params)
{
return false;
});
jQuery.validator.unobtrusive.adapters.add('CreditCard', { }, function(options){
options.rules['CreditCardtest'] = true;
options.messages['CreditCardtest'] = options.message;
});
我不知道應該怎樣去CreditCardTest,難道我要重寫我已經在模型嗎?
謝謝
你真的想在javascript中編碼信用卡驗證算法嗎?不是說這是一個祕密,但對我來說似乎完全沒用。 – 2012-02-14 22:20:39
我不這樣做,但是我怎樣才能使這個工作? – 2012-02-14 22:21:50
你問如何將你的C#代碼翻譯成JavaScript? – 2012-02-14 22:33:15