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

Minahil Noor 2023年10月12日
  1. C# でコントローラーアクションを使用して複数のパラメーターを Get メソッドに渡す
  2. Attribute Routing を使用して複数のパラメーターを Get メソッドに渡すコードスニペット
  3. 複数のパラメーターを Get メソッドを使用して [FromQuery] に渡すコードスニペット
C# は get メソッドに複数のパラメーターを渡する

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) {}
}

関連記事 - Csharp Method