C# は get メソッドに複数のパラメーターを渡します

  1. C# で「コントローラーアクション」を使用して複数のパラメーターを Get メソッドに渡す
  2. Attribute Routing を使用して複数のパラメーターを Get メソッドに渡すコードスニペット
  3. 複数のパラメーターを Get メソッドを使用して [FromQuery] に渡すコードスニペット

ASP.NET MVC は Web アプリケーションの開発に使用されます。MVC Web APIWeb pages フレームワークは、MVC 6 という名前の 1つのフレームワークに統合されました。MVC は、ルーティングされるリクエストを介してモデル、ビュー、コントローラーとやり取りできるようにするパターンです。

この記事では、MVC コントローラーの Get メソッドに複数のパラメーターを渡すために使用されるさまざまなメソッドについて説明します。

C# で「コントローラーアクション」を使用して複数のパラメーターを Get メソッドに渡す

「コントローラーアクション」は、着信要求を処理するために使用されるメソッドです。そしてアクション結果を返します。 「アクション結果」は、着信リクエストに対する応答です。この場合、コントローラーアクションを使用して複数のパラメーターを Get メソッドに渡しました。

コード例:

public string Get(int? id, string FirstName, string LastName, string Address)
{
   if (id.HasValue)
      GetById(id);
   else if (string.IsNullOrEmpty(Address))
      GetByName(FirstName, LastName);
   else
      GetByNameAddress(FirstName, LastName, Address);
}

Attribute Routing を使用して複数のパラメーターを Get メソッドに渡すコードスニペット

Attribute Routing では、attributes を使用して routes を定義します。エラーの可能性を減らすため、これは推奨される方法です。Web APIURL をより詳細に制御できます。

このメソッドを使用するための正しい構文は次のとおりです。

//Specify route
[Route("api/YOURCONTROLLER/{parameterOne}/{parameterTwo}")]
    public string Get(int parameterOne, int parameterTwo)
    {
        return $"{parameterOne}:{parameterTwo}";}
    }

コード例:

//Specify route
[Route("api/yourControllerName/{FirstName}/{LastName}/{Address}")]
public string Get(string id, string FirstName, string LastName, string Address)
{
    return $"{FirstName}:{LastName}:{Address}";
}

複数のパラメーターを Get メソッドを使用して [FromQuery] に渡すコードスニペット

[FromQuery] は、パラメータがリクエストクエリ string にバインドされるように指定するために使用されます。これは FromQueryAttribute クラスのプロパティです。

このプロパティを使用するための正しい構文は次のとおりです。

[HttpGet]
    public string GetByAttribute([FromQuery]string parameterOne, [FromQuery]string parameterTwo)
    {

    }

コード例:

[Route("api/person")]
public class PersonController : Controller
{
    [HttpGet]
    //Passing one parameter to the Get method
    public string GetById([FromQuery]int id)
    {

    }

    [HttpGet]
    //Passing two parameters to the Get method
    public string GetByName([FromQuery]string firstName, [FromQuery]string lastName)
    {

    }

    [HttpGet]
    //Passing multiple parameters to the Get method
    public string GetByNameAndAddress([FromQuery]string firstName, [FromQuery]string lastName, [FromQuery]string address)
    {

    }
}
comments powered by Disqus