Necesito comprobar si la cookie está presente con valor o no. Pero me pregunto si hay alguna forma rápida y buena de hacerlo, ya que si necesito verificar 3 cookies parece malo verificar con if
o try
.Cómo comprobar si las cookies están vacías o no
¿Por qué no asigna cadena vacía a mi variable si la cookie no está presente? En su lugar, muestra Object reference not set to an instance of an object.
Mi código (que funciona, pero parece demasiado grande para esta tarea, yo creo que debe haber una mejor manera de hacer esto)
// First I need to asign empty variables and I don't like this
string randomHash = string.Empty;
string browserHash = string.Empty;
int userID = 0;
// Second I need to add this huge block of try/catch just to get cookies
// It's fine since I need all three values in this example so if one fails all fails
try
{
randomHash = Convert.ToString(Request.Cookies["randomHash"].Value);
browserHash = Convert.ToString(Request.Cookies["browserHash"].Value);
userID = Convert.ToInt32(Request.Cookies["userID"].Value);
}
catch
{
// And of course there is nothing to catch here
}
Como se puede ver que tengo esta enorme bloquear solo para obtener cookies. Lo que me gustaría es algo como esto:
// Gives value on success, null on cookie that is not found
string randomHash = Convert.ToString(Request.Cookies["randomHash"].Value);
string browserHash = Convert.ToString(Request.Cookies["browserHash"].Value);
int userID = Convert.ToInt32(Request.Cookies["userID"].Value);
Editar Tal vez pueda de alguna manera reemplazar el método .Value
a mi gusto?
Quizás esto no es ideal, pero realmente no hay nada "grande" sobre ese bloque de código. –
Todavía me gustaría usar el segundo. Si esta es la única manera de hacerlo bien, pero me parece que debería haber una mejor. – sed
Bien, podrías usar algo como 'Convert.ToString (Request.Cookies [" randomHash "]! = Null? Request.Cookies [" randomHash "]. Valor:" ");' por línea, pero eso solo da líneas más largas . –