C# 將多個引數傳遞給 get 方法
Minahil Noor
2023年10月12日
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) {}
}