ASP.NET: использование Request ["param"] по сравнению с использованием Request.QueryString ["param"] или Request.Form ["param"] - PullRequest
3 голосов
/ 09 февраля 2011

При обращении к значению формы или строки запроса из выделенного кода в ASP.NET, каковы плюсы и минусы использования, скажем:

// short way
string p = Request["param"];

вместо:

// long way
string p = Request.QueryString["param"]; // if it's in the query string or
string p = Request.Form["param"];        // for posted form values

Я много раз думал об этом и придумал:

Короткий путь:

  • Короче (более читабельно, легче для запоминания новичками т. д.)

Длинный путь:

  • Нет проблем, если есть значения формы и строки запроса с одинаковым именем (хотя обычно это не так)проблема)
  • Кто-то, читающий код позже, знает, нужно ли искать URL-адреса или элементы формы, чтобы найти источник данных (возможно, самый важный момент)

.

Итак, какие еще преимущества / недостатки есть у каждого подхода?

Ответы [ 2 ]

9 голосов
/ 09 февраля 2011

коллекция параметров включает все (4) коллекции:

  1. Параметры строки запроса
  2. Поля формы
  3. Файлы cookie
  4. Переменные сервера

Вы можете поспорить, что поиск в комбинированном наборе медленнее, чем поиск в конкретном, но это незначительно, чтобы изменить ситуацию

4 голосов
/ 09 февраля 2011

Длинный путь лучше , потому что:

  • Это облегчает (при чтении кода позже) поиск , откуда приходит значение (улучшение читабельности)

  • Это незначительно быстрее (хотя обычно это не так важно и относится только к первому доступу)

В ASP.NET (а также в эквивалентной концепции в PHP) я всегда использую то, что вы называете «длинной формой».Я делаю это из принципа, что я хочу точно знать, откуда поступают мои входные значения, так что я гарантирую, что они попадают в мое приложение так, как я ожидаю.Так что для проверки ввода и безопасности я предпочитаю более длинный путь.Кроме того, как вы предлагаете, я думаю, что ремонтопригодность стоит нескольких дополнительных нажатий клавиш.

...