I'm trying to add an Admin to my site. There issue is found on my AccountsModels.cs
It simply has to compare the data implemented but I seem to get this error.
I also have a view with:
-Register.cshtml
-LogOn.cshtml
-ChangePasswordSuccess.cshtml
-ChangePassword.cshtml& an AccountController.cs of course..
Someone know a solution?
Here is the code:
using System.ComponentModel.DataAnnotations;
using System.Web.Mvc;
using System.Web.Security;
namespace Videoteek.Domain.Models
{
public class ChangePasswordModel
{
[Required]
[DataType(DataType.Password)]
[Display(Name = "Current password")]
public string OldPassword { get; set; }
[Required]
[StringLength(100, ErrorMessage = "The {0} must be at least {2} characters long.", MinimumLength = 6)]
[DataType(DataType.Password)]
[Display(Name = "New password")]
public string NewPassword { get; set; }
[DataType(DataType.Password)]
[Display(Name = "Confirm new password")]
[Compare("NewPassword", ErrorMessage = "The new password and confirmation password do not match.")]
public string ConfirmPassword { get; set; }
}
public class LogOnModel
{
[Required]
[Display(Name = "User name")]
public string UserName { get; set; }
[Required]
[DataType(DataType.Password)]
[Display(Name = "Password")]
public string Password { get; set; }
[Display(Name = "Remember me?")]
public bool RememberMe { get; set; }
}
public class RegisterModel
{
[Required]
[Display(Name = "User name")]
public string UserName { get; set; }
[Required]
[DataType(DataType.EmailAddress)]
[Display(Name = "Email address")]
public string Email { get; set; }
[Required]
[StringLength(100, ErrorMessage = "The {0} must be at least {2} characters long.", MinimumLength = 6)]
[DataType(DataType.Password)]
[Display(Name = "Password")]
public string Password { get; set; }
[DataType(DataType.Password)]
[Display(Name = "Confirm password")]
[Compare("Password", ErrorMessage = "The password and confirmation password do not match.")]
public string ConfirmPassword { get; set; }
//****
[Required]
[Display(Name = "Security Question")]
public string PwdQuestion { get; set; }
[Required]
[Display(Name = "Security Answer")]
public string PwdAnswer { get; set; }
}
}
This often occurs because the casing used in the name of the type is not correct. For example, Dataset ds; generates CS0246 because the s in Dataset must be capitalized. If the error is for a type name, did you include the proper using directive, or, alternatively, fully qualify the name of the type?
From your code it looks like that you want to compare your password with confirm password. If it is so then your attribute
Compare
is not correct. it should be
[CompareAttribute("NewPassword", ErrorMessage = "The new password and confirmation password do not match.")]
You already have the desired namespace added in the code. You can read more about it here.
I had the same error too. And I realized that when I was using .net 4.0 the System.Web.Mvc;
and System.ComponentModel.DataAnnotations;
usings it Resolved. But when I changed the framework o 4.5 the error was
'CompareAttribute' is an ambiguous reference between 'System.ComponentModel.DataAnnotations.CompareAttribute' and 'System.Web.Mvc.CompareAttribute'
and
The type or namespace name 'Compare' could not be found (are you missing a using directive or an assembly reference?)
Conclusion if the framework is 4.0
System.Web.Mvc;
System.ComponentModel.DataAnnotations;
and rebuilt the project else if the framework is 4.0
System.ComponentModel.DataAnnotations;
and rebuilt the project
Don't forget to always Run Visual Studio as(in) Administrator(mode)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With