"Сравнение" - это двусмысленная ссылка между "System.ComponentModel.DataAnnotations.CompareAttribute" и "System.Web.Mvc.CompareAttribute"
У меня есть эта ошибка в моем AccountController.
Не удалось найти имя типа или пространства имен 'SelectListItem' (вам не хватает директивы using или ссылки на сборку?
Очевидное исправление заключается в добавлении using System.Web.Mvc;
Однако, когда я делаю, я получаю 4 новых ошибки
На двух разностных линиях:
Невозможно найти имя типа или пространства имен ErrorMessage (вам не хватает директивы using или ссылки на сборку?)
В двух других строках:
"Сравнение" - это двусмысленная ссылка между "System.ComponentModel.DataAnnotations.CompareAttribute" и "System.Web.Mvc.CompareAttribute"
Почему это происходит и как его исправить?
public class RegisterViewModel
{
[DataType(DataType.Password)]
[Display(Name = "Confirm password")]
[Compare("Password", ErrorMessage = "The password and confirmation password do not match.")]
public string ConfirmPassword { get; set; }
public IEnumerable<SelectListItem> DepotList { get; set; }
}
ResetPasswordViewModel
public class ResetPasswordViewModel
{
[DataType(DataType.Password)]
[Display(Name = "Confirm password")]
[Compare("Password", ErrorMessage = "The password and confirmation password do not match.")]
}
Ответы
Ответ 1
Да. Оба этих пространства имен имеют тот атрибут, который имеет одинаковую функциональность.
В соответствии с документацией msdn, System.Web.Mvc.CompareAttribute
устарел, и рекомендуется использовать System.ComponentModel.DataAnnotations.CompareAttribute
Итак, используйте либо полное имя, включая пространство имен.
[DataType(DataType.Password)]
[Display(Name = "Confirm password")]
[System.ComponentModel.DataAnnotations.Compare("Password",
ErrorMessage = "The password and confirmation password do not match.")]
public string Name { get; set; }
Или вы можете использовать имя псевдонима, если вы не хотите ставить полное имя во всех местах
using Compare = System.ComponentModel.DataAnnotations.CompareAttribute;
public class ResetPasswordViewModel
{
[DataType(DataType.Password)]
[Compare("Password", ErrorMessage = "The password and confirm password do not match.")]
public string Password { set;get;}
//Other properties as needed
}