RealPath:
WebPath:
2017/04/10 18:47 (JST) 更新
REST API >>

クエリパラメータ取得

Contents

クエリパラメータとは

例えば URL が http://hostname/fuga?abc=def&xyz=10 であった場合、?abc=def&xyz=10 の部分がクエリパラメータにあたる。

Controller の場合のクエリパラメータ取得

Controller クラスが Request プロパティを持っているので、以下のように簡単にクエリパラメータが取得できる。

public class HomeController : Controller
{
    // "http://hostname/Home/Index?abc=def&xyz=10" のようなリクエストを想定
    public ActionResult Index()
    {
        ViewBag.param1 = Request.Params["abc"]; // "def" のような文字列を取得
        ViewBag.param2 = Request.Params["xyz"]; // "10" のような文字列を取得
        return View();
    }
    ....

ApiController の場合のクエリパラメータ取得

ApiController クラスは Request プロパティを持っていないので、System.Web.HttpContext クラス経由でクエリパラメータを取り出す。

....
using System.Web;
....
public class ValuesController : ApiController
{
    // "http://hostname/api/Values?abc=def&xyz=10" のようなリクエストを想定
    public IEnumerable<string> Get()
    {
        string param1 = HttpContext.Current.Request.QueryString["abc"]; // "def" のような文字列を取得
        string param2 = HttpContext.Current.Request.QueryString["xyz"]; // "10" のような文字列を取得
        return new string[] { "value1", "value2", param1, param2 };
    }
    ....

参考