2015-08-26 2 views
5

Например, если строка запроса содержит 2 ожидаемых параметра, скажем. param1 = "abc" & param2 = "def".Как проверить, задан ли параметр «неизвестный» в строке запроса запроса?

Я знаю, что Request.QuerySring["abc"] проверит «abc» в строке запроса.

Но есть ли способ проверить, вводит ли пользователь что-либо другое, кроме param1 или param2?

Спасибо.

+0

Зачем вам все это? если пользователь вводит значение с идентификатором, который вы не используете в своем коде, тогда это все равно бессмысленно. –

+8

http://stackoverflow.com/questions/2375372/is-there-a-way-to-get-all-the-querystring-name-value-pairs-into-a-collection – JleruOHeP

ответ

2

Да, вы можете использовать AllKeys:

Request.QueryString.AllKeys

Чтобы получить список параметров, используемых отдельно от 'param1' и 'Param2':

var expectedParams = new [] { "param1", "param2" }; 
var additionalParams = Request.QueryString.AllKeys.Where(k => !expectedParams.Contains(k)); 
0

Если вы пытаетесь получить Request.QuerySring["param1"] вы получите значение abc. Теперь, если пользователь изменит KEYS строки запроса, вы не сможете получить его, так как вы извлекаете значения строки запроса с помощью KEYS. Поэтому вам не нужно проверять входные данные пользователей.

 Смежные вопросы

  • Нет связанных вопросов^_^