Gần đây tôi đã đặt ra một câu hỏi here về Ngăn xếp ngăn xếp về việc tìm điểm mở rộng phù hợp cho mô hình ràng buộc trong API Web API. Sử dụng nhà cung cấp tùy chỉnh/IModelBinder
cho tôi toàn quyền kiểm soát mô hình ràng buộc và truy cập vào các nhà cung cấp giá trị.Làm thế nào tôi có thể gọi ràng buộc mô hình mặc định trong một binder tùy chỉnh trong MVC4 Web API?
Tuy nhiên, nó thực sự kiểm soát quá nhiều. Tôi chỉ muốn kiểm soát một vài giá trị được ánh xạ như thế nào và không muốn ràng buộc mô hình mã tay mà nếu không sẽ hoạt động tốt.
Cuối cùng, đây là những gì tôi muốn để có thể làm:
public class MyCustomModelBinder : IModelBinder
{
public bool BindModel(HttpActionContext actionContext, ModelBindingContext bindingContext)
{
// Invoke default model binding
// Pull out custom values
var value1 = bindingContext.ValueProvider.GetValue("value1");
var value2 = bindingContext.ValueProvider.GetValue("value2");
bindingContext.Model.Value1 = DoCustomStuff(value1);
bindingContext.Model.Value2 = DoCustomStuff(value2);
return true;
}
... // Define DoCustomStuff
}
Dường như đó là khá khó khăn để có được Ahold của một nhà cung cấp mặc định cho WebAPI. Có ai biết nó có thể truy cập được không và nó nên được truy cập ở đây như thế nào trong một bộ mô hình tùy chỉnh?
Yeah, tiếc là Web API là một động vật hoàn toàn khác nhau ngay bây giờ trong các phiên bản beta. Hoạt động của nhà cung cấp binder mặc định là một phương thức trừu tượng. –
Điều này có một thẻ 'asp.net-web-api' có mô hình ràng buộc rất khác so với' MVC', vì vậy câu trả lời này không hữu ích chút nào. – atconway