web-dev-qa-db-ja.com

MVC-ドット文字を含むパラメーター名を持つget要求からパラメーター値を取得する方法

MVCでは、次のようなgetリクエストからパラメーターを取得できることがわかっています。

要求:

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

そしてコントローラーで

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

しかし、私の状況では、外部Webサイトから次のようなgetリクエストが送信されます。

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

そして、コントローラーで次のようにこのリクエストに応えようとすると:

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

変数名にドットが含まれているため、ビルドエラーが発生します。これらのパラメーターを取得するにはどうすればよいですか?残念ながら、パラメータ名の変更を依頼することはできません。

26
nooaa

次のコードを使用します。

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

        ...
    }
42
ssimeonov

これはおそらくあなたの最善の策でしょう:

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

パラメータを明示的なパラメータとしてではなく、HttpContext.Request.Paramsから取得します

15
James Haug