Tôi có một hành động WebApi hiện có, mà tôi muốn chuyển từ HttpPost sang HttpGet. Nó hiện đang mất một đối tượng phức tạp duy nhất làm tham số.MVC WebApi HttpGet với đối tượng phức tạp
Mô hình:
public class BarRequest
{
[JsonProperty("catid")]
public int CategoryId { get; set; }
}
Bộ điều khiển:
public class FooController : ApiController
{
//[HttpPost]
[HttpGet]
[ActionName("bar")]
public void Bar([FromUri] BarRequest request)
{
if (request != null)
{
// CategoryId should be 123, not 0
Debug.WriteLine("Category ID :: {0}", request.CategoryId);
}
}
}
Bây giờ khi tôi gửi yêu cầu sau đây, mọi thứ hoạt động như mong đợi.
GET /foo/bar?CategoryId=123
Ngoài ra, yêu cầu POST cũ đã hoạt động như mong đợi.
POST /foo/bar {"catid":123}
Nhưng bây giờ tôi cần những yêu cầu sau đây để làm việc:
GET /foo/bar?catid=123
Làm thế nào tôi có thể thực hiện điều này?
Tại sao không chỉ sử dụng CategoryID để thực hiện việc này? Hoặc tại sao không sử dụng CatID làm tên thuộc tính hoặc sử dụng CATID làm tham số cho phương thức? –
Mô hình thực tế có nhiều tính chất hơn. Không thể thay đổi việc đặt tên thuộc tính (đặt tên hướng dẫn ở mỗi bên - máy chủ/C# và máy khách/js). –