Кто-нибудь использует "true" или "false" при установке параметра строки запроса для bool? или большинство людей используют "1" или "0". Мне было бы интересно узнать об этом консенсусе.
Используйте "true" или "1" для параметров булевых querystring
Ответ 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", поэтому я думаю, что вышеупомянутый экзамен намного лучше