Лучшие практики для "класса данных поиска" в ASP.NET MVC - PullRequest
1 голос
/ 06 апреля 2010

Я надеюсь, что это не слишком субъективно, но я новичок в ASP.NET MVC и пытаюсь выяснить, как другие могли решить подобные проблемы.

По сути, у меня есть две сущности: клиенты и заказы. У клиента много заказов; заказ принадлежит только одному клиенту. Я делаю функцию поиска заказов, которая должна позволять пользователю искать заказы на основе информации о заказах или . Я думаю, довольно просто.

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

Я использую Entity Framework для создания своих моделей, и это в отдельном проекте библиотеки классов и пространстве имен.

В этой статье говорится об использовании привязки вместо Request.Form для получения данных POST. Имеет ли смысл создавать класс для хранения всех данных поиска, которые могут быть материализованы привязкой магической модели? В противном случае я бы просто пробирался через FormCollection, чтобы вытащить определенные значения, что может быть хорошо. Где бы вы порекомендовали сделать такой урок?

Ответы [ 2 ]

0 голосов
/ 06 апреля 2010

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

0 голосов
/ 06 апреля 2010

Это только частичный ответ, в частности, на часть «FormCollection vs Class». По моему мнению, вы всегда должны использовать класс для этого, если у вас нет веских причин не делать этого. Вы получаете проверку во время компиляции, которая является преимуществом № 1. Вы также получаете поддержку Intellisense, которая также полезна. И, наконец, вы можете получить некоторые преимущества в производительности, так как ваш код потенциально может выполнять меньше приведения / разбора.

Что касается вопроса GET vs POST, я все еще сам борюсь с этим общим вопросом, но у меня есть мнение по поводу его конкретного использования. В настоящее время я склоняюсь к следующим правилам:

  • Используйте GET, если параметры идентифицируют некоторый entity (т.е. ~ / product / id / 54 = банка кока-колы)
  • Используйте POST, если параметры помогают генерировать действительно динамическую страницу, на которой может существовать безбожное количество таких страниц (например, экран результатов поиска, где существует почти бесконечное число возможностей).

Теперь, возможно, я не согласен с моим мнением GET vs POST, но я думаю, что между классом и мнением FormCollection будет много согласия.

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