Подтвердить что ты не робот

Используйте "true" или "1" для параметров булевых querystring

Кто-нибудь использует "true" или "false" при установке параметра строки запроса для bool? или большинство людей используют "1" или "0". Мне было бы интересно узнать об этом консенсусе.

4b9b3361

Ответ 1

Я предпочитаю "1/0", потому что он не подпадает под требования локализации.

bool isTrue = Request.QueryString["value"] == "1";

Ответ 2

Большинство сайтов используют true/false в своих строках запроса, поэтому вам не придется переключаться с 0/1 на boolean в вашем коде позади (если утверждение или что-то еще). Номер больше используется для идентификаторов.

Ответ 3

Вам тоже не нужно использовать. Параметр строки запроса не обязательно должен иметь значение. У вас может быть только такой uri: http://someserver.com/somepage.aspx?SortById=&day=Monday

а затем в вашем коде:

if(Request.QueryString.AllKeys.Contains("SortById")) ...

Ответ 4

Это не имеет значения, если честно. Я никогда не использовал bool в строке запроса, но я бы выбрал вариант "1".

Ответ 5

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

Имейте в виду, что параметр querystring может легко измениться с кем-то еще в его браузере.

Ответ 6

"true" или "false" является более читаемым. 1 или 0 сохраняет символ в вашем URL-адресе. Я предпочитаю 0 или 1. Для преобразования я использую методы расширения:

    public static bool GetBoolVal(this HttpRequest r, string name)
    {
        return r[name] == "1";
    }

    bool yesnot = Page.Request.GetBoolVal("yesno");

(псевдокод, не проверен)

Ответ 7

Используйте "0" или "1" точно! вы можете как устанавливать, так и извлекать эти логические значения гораздо более простым способом в Javascript путем принудительного форсирования с помощью оператора "+", например.

var boolVal = true;

// this sends user to 'https://www.google.com?bool=1' (uses ES6 template strings)
window.location = `https://www.google.com?bool=${+boolVal}`; 

var query = queryParsingFunctionProbablyIncludedInYourFramework(window.location.search)

// the below will yield the boolean "true" and "false", 
// without the "!!" this would evaluate to a numerical zero or 1 
// which would still evaluate as false and true respectively in a 
// boolean expression as you'd want
!!+query.bool // evaluates to true in this case

невозможно преобразовать строку "true" или "false" непосредственно в логическое "true" или "false", поэтому я думаю, что вышеупомянутый экзамен намного лучше