Disons que j'ai quelques url qui ressemble à ceci: www.myhost.com/mypage?color=blue
Dans Asp.Net de Base, je m'attends à obtenir la couleur valeur du paramètre de requête en procédant comme suit:
string color = Request.Query["color"];
Mais il s'avère que l' Request.Query["color"]
retourne une valeur de type StringValues
plutôt que d' string
. Pourquoi est-ce?
Apparemment, l' StringValues
type peut contenir un tableau de chaînes de caractères et inclut le support pour la conversion implicite d' string[]
ce qui est cool, mais pourquoi est-ce nécessaire pour une requête param valeur?
D'avoir à obtenir la valeur comme cela semble étrange:
string color = Request.Query["color"].ToString();
Et pire, la vérification de la valeur pour voir si une requête paramètre est spécifié ne peut plus être fait comme
if(Request.Query["color"] == null) {
//param was not specified
}
mais au lieu de cela doit être vérifié comme
if(Request.Query["color"].Count == 0) {
//param was not specified
}
Depuis un seul paramètre de requête ne peut pas avoir plusieurs valeurs (autant que je sache) pourquoi est - Request.Query["color"]
retourner un StringValues
objet plutôt qu'une chaîne de caractères?