C# 将多个参数传递给 get 方法

Minahil Noor 2023年10月12日
  1. 在 C# 中使用控制器动作将多个参数传递给 Get 方法
  2. 使用属性路由将多个参数传递给获取方法的代码
  3. 使用 [FromQuery] 将代码段传递给 Get 方法的代码
C# 将多个参数传递给 get 方法

ASP.NET MVC 用于开发 Web 应用程序。MVC Web API 和网页框架现已合并为一个名为 MVC 6 的框架。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);
}

使用属性路由将多个参数传递给获取方法的代码

在属性路由中,我们使用属性来定义路由。这是推荐的方法,因为它减少了出错的机会。它使你可以更好地控制 Web API 中的 URL

使用此方法的正确语法如下:

// 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}";
}

使用 [FromQuery] 将代码段传递给 Get 方法的代码

[FromQuery] 用于指定参数应与请求查询字符串绑定。它是 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