2012-06-14 28 views
5

Tôi có một phương thức POST trên một trong các bộ điều khiển API của tôi mà phải mất một chuỗi giá trị duy nhất:Làm cách nào để liên kết giá trị POST đơn giản trong ASP.NET WebAPI RC?

public string Post([FromBody] string foo) { 
    return(fooOracle.ValidateFoo(foo) ? "success" : "failure"); 
} 

Tôi gửi bài này với cơ thể của bài yêu cầu như:

foo=123412341234 

(tức là đó là HTTP POST thông thường mà bạn có thể bắt đầu bằng cách gửi biểu mẫu trình duyệt cũng như sử dụng ứng dụng HTTP)

Trong ứng cử viên phát hành của WebAPI, điều này đã ngừng hoạt động âm thầm - nó không liên kết foo nữa. Để có được làm việc mã, tôi đã phải thay thế phương pháp này với điều này:

public string Post(FormDataCollection form) { 
    var foo = form.Get("foo"); 
    return(fooOracle.ValidateFoo(foo) ? "success" : "failure"); 
} 

này làm việc, nhưng nó kinda lộn xộn và liên quan đến việc thay vì hơn hệ thống ống nước để kiểm tra hơn so với phiên bản trước.

Tôi đã bỏ lỡ một số thay đổi tinh tế, hoặc có cú pháp ràng buộc [FromBody] bị phản đối vì lợi ích của cú pháp ràng buộc khá dài dòng này? Các thuộc tính vẫn còn đó, nhưng nó thực sự không rõ ràng những gì nó thực sự làm trong phiên bản RC.

+0

Đặt câu hỏi của bạn tại đây: http://aspnetwebstack.codeplex.com/discussions/359687 – Aliostad

Trả lời

1

Thực tế có một thay đổi nhỏ mà không thể xử lý các yếu tố đầu vào như 'foo = 123412341234' nhưng sẽ xử lý '= 123412341234' làm đầu vào. Bạn có thể làm cho khách hàng gửi nó như sau?

Nếu không, bạn có thể tạo một lớp trình bao bọc như dưới đây và thực hiện hành động của bạn mong đợi chuỗi ký tự như một tham số thay vì chính chuỗi đó.

Chuỗi lớpWrapper {public string Foo {get; set;}}

Các vấn đề liên quan