2010-02-01 14 views

Respuesta

25

Prefiero "1/0", porque no se encuentra dentro de los requisitos de localización.

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

Común b Las palabras clave ooleanas como "verdadero" o "falso" tampoco están sujetas a i18n. – dakab

1

Realmente no importa, para ser honesto. Nunca he usado un bool en una cadena de consulta, pero probablemente optaría por el '1'.

+0

1, I use 1 también si alguna vez tengo que pasar un booleano a través de querystring, pero hay un cierto programador aquí que le gusta enmascarar sus booleanos por ofuscación, por lo que el resultado es "74727565" y "66616C7365":/ – kd7

+1

Además de los otros defectos obvios en ese método, estoy seguro de que cualquier pirata informático notaría dos valores fijos que representan verdadero o falso :) Quién sabe, ese programador podría estar leyendo esta página ..... – keyboardP

+0

Espero que esté :) – kd7

1

siempre que valide su entrada, debería ser menos importante. ambos pueden ser analizados en un valor booleano.

tenga en cuenta que el parámetro querystring podría cambiar fácilmente de otra persona en su navegador.

2

mayoría de los sitios usar verdadero/falso en sus cadenas de consulta, por lo que no tendrán que pasar de 0/1 de vuelta a booleano en su código detrás (si la declaración o algo así). El número se usa más para los ID.

1

"verdadero" o "falso" es más legible. 1 o 0 guarda caracteres en su URL. Yo prefiero 0 o 1. Para convertir utilizo métodos de extensión:

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

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

(seudo código, no probado)

2

Usted no tiene que utilizar. Un parámetro de cadena de consulta no tiene que tener un valor. Se podía tener un URI como esta: http://someserver.com/somepage.aspx?SortById=&day=Monday

y luego en el código:

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

hmm, me pregunto si algo cambia por el framework si eso llegara a romperse. – PositiveGuy

+0

¿Qué sucede si envía un formulario con una casilla de verificación? Independientemente de si está marcada o no, aún se agregará un parámetro a la cadena de consulta. –

0

Uso "0" o "1" seguro! puede establecer y recuperar estos valores booleanos de una manera mucho más limpia en Javascript forzando el forzado con el operador "+", p.

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 

no hay manera de convertir una cadena de "verdadero" o "falso" directamente a un valor lógico "verdadero" o "falso" así que creo que la apprach arriba es mucho mejor

Cuestiones relacionadas