web-dev-qa-db-fra.com

MVC - Comment obtenir une valeur de paramètre à partir d'une requête get qui a des noms de paramètres, y compris des caractères avec points

Dans MVC, je sais que nous pouvons obtenir les paramètres d'une requête get comme celle-ci:

Demande:

http://www.example.com/method?param1=good&param2=bad

Et dans le contrôleur

public ActionResult method(string param1, string param2)
{
   ....
}

Mais dans ma situation, un site Web externe m'envoie une demande d'obtention telle que:

http://www.example.com/method?param.1=good&param.2=bad

Et dans le contrôleur quand j'essaie de répondre à cette demande comme suit:

public ActionResult method(string param.1, string param.2)
{
   ....
}

Je reçois des erreurs de construction à cause du point dans le nom de variable. Comment puis-je obtenir ces paramètres? Malheureusement, je ne peux pas leur demander de changer les noms des paramètres.

26
nooaa

Utilisez le code suivant:

    public ActionResult method()
    {
        string param1 = this.Request.QueryString["param.1"];
        string param2 = this.Request.QueryString["param.2"];

        ...
    }
42
ssimeonov

Ce sera probablement votre meilleur pari:

/// <summary>
/// <paramref name="param.1"/>
/// </summary>
public void Test1()
{
    var value = HttpContext.Request.Params.Get("param.1");
}

Récupère le paramètre de HttpContext.Request.Params plutôt que de le définir comme paramètre explicite

15
James Haug