У меня проблема с использованием алгоритма Луна для проверки кредитных карт.Невозможно использовать алгоритм Луна для проверки кредитных карт
Я использую это в C# код:
void ServerValidation(object source, ServerValidateEventArgs args)
{
// use a RequiredFieldValidator to check for an empty value
if (CreditCardNumber.Text == string.Empty) args.IsValid = true;
args.IsValid = IsCreditCardValid(this.CreditCardNumber.Text);
}
protected override void OnInit(EventArgs e)
{
base.OnInit(e);
CreditcardValidation.ServerValidate += ServerValidation;
}
public bool IsCreditCardValid(string cardNumber)
{
const string allowed = "";
int i;
StringBuilder cleanNumber = new StringBuilder();
for (i = 0; i < cardNumber.Length; i++)
{
if (allowed.IndexOf(cardNumber.Substring(i, 1)) >= 0)
cleanNumber.Append(cardNumber.Substring(i, 1));
}
if (cleanNumber.Length < 13 || cleanNumber.Length > 16)
return false;
for (i = cleanNumber.Length + 1; i <= 16; i++)
cleanNumber.Insert(0, "0");
int multiplier, digit, sum, total = 0;
string number = cleanNumber.ToString();
for (i = 1; i <= 16; i++)
{
multiplier = 1 + (i % 2);
digit = int.Parse(number.Substring(i - 1, 1));
sum = digit * multiplier;
if (sum > 9)
sum -= 9;
total += sum;
}
return (total % 10 == 0);
И это в ASPX:
Creditcard number: <asp:TextBox ID="CreditCardNumber" runat="server"></asp:TextBox>
<asp:RequiredFieldValidator ID="CreditCardNumberReq" ControlToValidate="CreditCardNumber" ErrorMessage="Please enter a Number" runat="server" Display="Dynamic"></asp:RequiredFieldValidator>
<asp:CustomValidator ID="CreditcardValidation" ControlToValidate="CreditCardNumber" onservervalidate="ServerValidation" ErrorMessage="Please enter a valid Creditcard Number" runat="server" Display="Dynamic"></asp:CustomValidator>
Я всегда получаю сообщение об ошибке, потому что я не получаю значение из моего .aspx на C# или что-то в этом роде. Это конкретная ошибка, которую я получаю:
Описание: Ошибка при компиляции ресурса, необходимого для обслуживания этого запроса. Проверьте следующие конкретные сведения об ошибках и соответствующим образом измените исходный код.
Сообщение об ошибке компилятора: CS1061: «ASP.controls_midtermucc_ascx» не содержит определения для «Проверка сервера», и не было обнаружено никакого метода расширения «Проверка сервера», который принимает первый аргумент типа «ASP.controls_midtermucc_ascx» '(вам не хватает директивы по использованию или ссылки на сборку?)
Что мне нужно делать?
Какая ошибка вы получаете? Мы не можем помочь, если вы заставите нас угадать ошибку. –
это говорит что-то вроде: 'Описание: Ошибка компиляции ресурса, необходимого для обслуживания этого запроса. Проверьте следующие конкретные сведения об ошибках и соответствующим образом измените исходный код. Сообщение об ошибке компилятора: CS1061: «ASP.controls_midtermucc_ascx» не содержит определения для «Проверка сервера», и не было обнаружено никакого метода расширения «Проверка сервера», который принимает первый аргумент типа «ASP.controls_midtermucc_ascx» (вам не хватает директивы использования или ссылки на сборку?). – user2157063