Понимание проверки на стороне клиента и сервера с использованием аннотаций данных - PullRequest
0 голосов
/ 18 сентября 2010

Я использую MVC 2. У меня есть вопрос, касающийся проверки на стороне клиента и на сервере. Допустим, у меня есть класс, и у него есть 3 свойства как таковые:

[Required(ErrorMessage = "Required")]
public object Property1 { get; set; }

[Required(ErrorMessage = "Required")]
public object Property2 { get; set; }

[Required(ErrorMessage = "Required")]
public object Property3 { get; set; }

На мой взгляд, у меня есть ТОЛЬКО свойство 1 и свойство 2 и я делаю из них текстовые поля. Я не добавил Property3 к представлению (но он помечен как требуется, как указано выше). Если я ничего не введу в текстовые поля, проверка на стороне клиента завершится неудачей. Если я вставлю текст в текстовые поля, будет ли проходить сторона клиента, даже если для Property3 не было задано значение? Будет ли сбой на стороне сервера?

Проблема, с которой я столкнулся, связана с сервером после того, как я нажал кнопку отправки. Вот мой код для моего действия Create:

public ActionResult CreateApplication(Application application)
{
   try
   {
      application.ApplicationStateID = 1;
      application.SubmitterEmployeeNumber = "123456";

      if (ModelState.IsValid)
      {
         // Code here
      }
   }
   catch
   {
   }
}

ApplicationStateID и SubmitterEmployeeNumber не установлены на стороне клиента (они оба помечены как обязательные), поэтому я установил его здесь. После того, как я установил их, почему проверка на сервере все еще не прошла?

1 Ответ

1 голос
/ 18 сентября 2010

Проверка на стороне клиента пройдет, потому что нет соответствующего элемента ввода для проверки, проверка на стороне сервера завершится неудачей, потому что вы вводите обязательное поле, и значение этого поля не публикуется на сервере. Вы можете прочитать эту запись в блоге , чтобы понять, как работает проверка модели и различия между проверкой входных данных и проверкой модели.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...