ASP.NET Платформа Проверки MVC при регистрации через $ jQuery .ajax?

Я обнаружил TRUNCATE TABLE в ссылке проводить-SQL MSDN. Для всех заинтересованных здесь комментарии:

TRUNCATE TABLE функционально идентичен Оператору удаления без оператора Where: оба удаляют все строки в таблице. Но TRUNCATE TABLE быстрее и использует меньше системы и ресурсов журнала транзакций, чем УДАЛЯЮТ.

Оператор удаления удаляет строки по одному и записывает запись в журнале транзакций для каждой удаленной строки. TRUNCATE TABLE удаляет данные путем освобождения страниц данных, используемых, чтобы хранить данные таблицы, и только освобождение страницы зарегистрировано в журнале транзакций.

TRUNCATE TABLE удаляет все строки из таблицы, но структура таблицы и ее столбцы, ограничения, индексы и так далее остаются. Счетчик, используемый идентификационными данными для новых строк, сбрасывается к семени для столбца. Если Вы хотите сохранить счетчик идентификационных данных, использование УДАЛЯЮТ вместо этого. Если Вы хотите удалить определение таблицы и его данные, используйте оператор DROP TABLE.

Вы не можете использовать TRUNCATE TABLE на таблице, на которую ссылается ограничение FOREIGN KEY; вместо этого, используйте Оператор удаления без оператора Where. Поскольку TRUNCATE TABLE не зарегистрирован, он не может активировать триггер.

TRUNCATE TABLE не может использоваться на таблицах, участвующих в индексном представлении.

6
задан Misha N. 12 October 2009 в 07:16
поделиться

1 ответ

Мне очень удалось выполнить проверку через AJAX с использованием атрибутов аннотаций данных. Чтобы проверить достоверность ваших данных, вам нужно будет использовать свойство контроллера ModelState , которое имеет собственное свойство, называемое IsValid . Я настоятельно рекомендую взглянуть на руководство по проверке атрибутов аннотаций данных на официальном сайте ASP.NET MVC.

Во-первых, вы захотите изменить действие вашего контроллера, чтобы принять ваш объект модели в качестве параметра , а не отдельное имя и номер счета. Это значительно упростит выполнение проверки, которую я продемонстрирую ниже. Исходя из вашего примера, я могу предположить, что ваш объект модели называется или будет называться Customer. У вас может быть следующий код для определения объекта модели и действия вашего контроллера ...

// model object
public class Customer
{
  public Int32 Id {get; set;}
  public String Name {get; set;}
  public String AccountNumber {get; set;}
}

// controller
public class CustomerController : Controller
{
  public ActionResult CreateCustomer( [Bind(Exclude = "Id")] Customer customer )
  {
     // controller action code
  }
}


Убедитесь, что имена полей вашей формы совпадают с именами свойств объекта Customer, чтобы ASP.NET MVC мог автоматически связывать их. Атрибут «Bind» в этом случае сообщает ASP.NET MVC игнорировать «Id». свойство класса Customer при привязке полей формы к свойствам модели. Поскольку это новый заказчик, у нас еще нет идентификатора, поэтому мы можем спокойно оставить идентификатор без значения по умолчанию и оставить уровень данных, чтобы выяснить, как лучше его сгенерировать.

Как только контроллер получит построил объект модели для метода действия, его достоверность можно легко проверить с помощью свойства ModelState.IsValid . Как и следовало ожидать, он вернет true, если свойства модели действительны, или false, если одно или несколько свойств недействительны.

Из исходного вопроса следует, что метод CustomerService.InsertCustomer выдает исключения при неудачной проверке. Это совершенно не нужно. InsertCustomer должен выполнить только те операции с данными, которые необходимы для вставки новой записи.

5
ответ дан 17 December 2019 в 00:11
поделиться
Другие вопросы по тегам:

Похожие вопросы: