Tôi đang cố gắng hỗ trợ nhiều phương thức Get() trên mỗi bộ điều khiển, cũng như chỉ các phương thức được đặt tên đặc biệt có thể truy cập thông qua api web. Tôi đã làm điều này trong MVC 5, nhưng dường như không thể tìm ra cách nó được thực hiện trong MVC 6. Bất kỳ ý tưởng? Cảm ơn.MVC 6 Nhiều phương thức nhận
Trả lời
Bạn có thể sử dụng thuộc tính định tuyến liên kết này -
[Route("api/[controller]")] /* this is the defualt prefix for all routes, see line 20 for overridding it */
public class ValuesController : Controller
{
[HttpGet] // this api/Values
public string Get()
{
return string.Format("Get: simple get");
}
[Route("GetByAdminId")] /* this route becomes api/[controller]/GetByAdminId */
public string GetByAdminId([FromQuery] int adminId)
{
return $"GetByAdminId: You passed in {adminId}";
}
[Route("/someotherapi/[controller]/GetByMemberId")] /* note the/at the start, you need this to override the route at the controller level */
public string GetByMemberId([FromQuery] int memberId)
{
return $"GetByMemberId: You passed in {memberId}";
}
[HttpGet]
[Route("IsFirstNumberBigger")] /* this route becomes api/[controller]/IsFirstNumberBigger */
public string IsFirstNumberBigger([FromQuery] int firstNum, int secondNum)
{
if (firstNum > secondNum)
{
return $"{firstNum} is bigger than {secondNum}";
}
return $"{firstNum} is NOT bigger than {secondNum}";
}
}
Xem ở đây để biết thêm chi tiết - http://nodogmablog.bryanhogan.net/2016/01/asp-net-5-web-api-controller-with-multiple-get-methods/
Bạn không thể có nhiều phương thức Nhận với cùng mẫu url. Bạn có thể sử dụng định tuyến thuộc tính và thiết lập nhiều phương thức GET cho các mẫu url khác nhau.
[Route("api/[controller]")]
public class IssuesController : Controller
{
// GET: api/Issues
[HttpGet]
public IEnumerable<string> Get()
{
return new string[] { "item 1", "item 2" };
}
// GET api/Issues/5
[HttpGet("{id}")]
public string Get(int id)
{
return "request for "+ id;
}
// GET api/Issues/special/5
[HttpGet("special/{id}")]
public string GetSpecial(int id)
{
return "special request for "+id;
}
// GET another/5
[HttpGet("~/another/{id}")]
public string AnotherOne(int id)
{
return "request for AnotherOne method with id:" + id;
}
// GET api/special2/5
[HttpGet()]
[Route("~/api/special2/{id}")]
public string GetSpecial2(int id)
{
return "request for GetSpecial2 method with id:" + id;
}
}
Bạn có thể thấy rằng tôi sử dụng cả hai HttpGet
và Route
thuộc tính để xác định các mô hình tuyến đường.
Với cấu hình trên, bạn bạn sẽ nhận được các câu trả lời dưới đây
Yêu cầu Url: yoursite/api/vấn đề/
quả ["value1","value2"]
Yêu cầu Url: yourSite/api/issues/4
quả request for 4
Yêu cầu Url: yoursite/api/special2/6
quả request for GetSpecial2 method with id:6
Yêu cầu Url: yoursite/khác/3
quả request for AnotherOne method with id:3
Awesome! Cảm ơn bạn rất nhiều. –
vui lòng xem [câu hỏi] của tôi (https://stackoverflow.com/questions/46680893/passing-multiple-parameters-to-web-api-get-method) – faisal1208
- 1. phương pháp UseSqlServer thiếu MVC 6
- 2. Các phương thức @ Json.Encode hoặc @ Json.Decode trong MVC 6 ở đâu?
- 3. Mục đích của việc thêm services.AddMvc() vào phương thức ConfigureServices trong mvc 6 là gì?
- 4. GetOwinContext trong MVC 6
- 5. File IO Close() lỗi phương pháp trong ASP.NET MVC 6
- 6. ASP.NET 5 MVC 6 Dependency Injection với nhiều Constructors
- 7. HtmlHelpers in MVC 6
- 8. Gọi một phương thức Java từ Visual Basic 6
- 9. Chuyển nhiều phương thức (delegate?)
- 10. Tải nhiều phương thức động
- 11. Thay thế cho phương thức Normalizer.getClass (c) trong Java 6
- 12. AsyncController bị thiếu trong MVC 6
- 13. MVC-6 vs MVC-5 BearerAuthentication trong API Web
- 14. Nhận Phương pháp: Một vs Nhiều
- 15. Phương thức xác thực nhiều PostgreSQL
- 16. Phương thức nhận giá trị của Go so với phương thức nhận con trỏ
- 17. Phương thức mã nhận dạng ASP.NET chấp nhận tất cả các phương thức HTTP
- 18. Nhận kiểu đối số theo phương thức
- 19. LINQ to Entities không nhận ra phương thức 'System.String ToString()' trong MVC 4
- 20. ASP.NET MVC Authorize Attribute để khởi chạy một phương thức?
- 21. TagBuilder InnerHtml trong ASP.NET 5 MVC 6
- 22. Nhận được nhiều hơn "chi tiết" từ MVC Mini Profiler
- 23. Nhiều phương thức xác thực servlet java
- 24. Nhiều khía cạnh trên một phương thức
- 25. Nhận giá trị từ RemoteMessage từ phương thức FCM onMessageReceived
- 26. Cách nhận các phương thức theo loại
- 27. Nhận các phương thức đối tượng R
- 28. Phương thức hành động mơ hồ - ASP.net MVC
- 29. MVC 6 Trình trợ giúp thẻ Intellisense?
- 30. Tiêm OData v4 vào MVC 6
Cảm ơn! Đây là một giải pháp tốt hơn, vì tôi có thể sử dụng các tuyến đường lồng nhau bình thường. –
vui lòng xem [câu hỏi] của tôi (https://stackoverflow.com/questions/46680893/passing-multiple-parameters-to-web-api-get-method) – faisal1208