Есть несколько учебных пособий, которые объясняют, как использовать аннотацию данных EF для проверки форм с использованием инфраструктуры MVC.И использовать jquery для клиентской стороны.
См. Например: http://dotnetaddict.dotnetdevelopersjournal.com/clientvalidation_mvc2.htm
Я хотел бы добиться того же, но без использования MVC / MVC2.
Я хочучтобы создать классический сайт asp.net, создать модель сущностей, создать мои частичные классы, которые включают проверку (обязательно, регулярное выражение и т. д.).
Я создал модель сущностей и частичные классы, включая аннотации данных.Я могу добавить новые записи в БД.
Мне не хватает проверки.Теперь я могу добавлять записи в БД, даже если поля недействительны, я хотел бы получить ошибки, и, если возможно, я хотел бы использовать jquery для проверки клиента (в MVC вы просто добавляете <% Html.EnableClientValidation(); %>
в представление...).
Вы можете мне помочь?Или укажите мне несколько хороших онлайн-ресурсов, которые объясняют это?
Большое спасибо.
РЕДАКТИРОВАТЬ : Я нашел здесь кое-что:
Как я могу сказать валидатору аннотаций данных также проверять сложные дочерние свойства?
У меня есть объект под названием «Пользователь», и я создал частичный класс следующим образом:
using System.ComponentModel;
using System.ComponentModel.DataAnnotations;
namespace MySite.Models
{
[MetadataType(typeof(UserMetaData))]
public partial class User
{
}
public class UserMetaData
{
[Required(ErrorMessage = "Username Required")]
[DisplayName("Username")]
public string Username{ get; set; }
[DisplayName("Password")]
[Required(ErrorMessage = "Password Required")]
[RegularExpression(@"^[^;>;&;<;%?*!~'`;:,."";+=|]{6,10}$", ErrorMessage = "The password must be between 6-10 characters and contain 2 digits")]
public string Password{ get; set; }
}
}
В коде моей страницы я поставил такую же проверку «isValid», как и в вышеупомянутой ссылке:
var validationContext = new ValidationContext(person, null, null);
var validationResults = new List<ValidationResult>();
var isValid = Validator.TryValidateObject(userToAdd, validationContext, validationResults);
if (isValid)
{
savetoDB();
}
Но когда я отлаживаю ... «isValid» всегда «true», дажеесли я оставлю поля пустымиСправка: -S
EDIT2:
Это всегда было "true", потому что я заполнял свойства "user" следующим образом:
User userToAdd = new User();
userToAdd.Username = txtUsername.Text;
userToAdd.Password = txtPassword.Text;
Я изменил объект: от «User» до «UserMetaData» (User userToAdd = new UserMetaData();
), тогда проверка работает («false» в случае, если регулярное выражение не соблюдается) ... но все же, довольно странно ... тогда я должен создать еще один объект "User"и заполнить его снова ... не очень чисто ...