2010-02-18 30 views
6

Tôi đã làm việc với MVC 2 và có vẻ như tại một thời điểm nào đó lớp ModelBindingContext.ValueProvider đã được gỡ bỏ và thay thế bằng IValueProvider. Bởi vì im này gặp rắc rối khi lặp qua ValueProvider.Keys. Dưới đây là một ví dụ và thông điệp mà tôi nhận được từ luật hoànIValueProvider trong MVC 2 RC 2

private void foo(ModelBindingContext myMBC) 
{ 
    var myImportantKeys = myMBC.ValueProvider.Keys.where(keyValue => keyValue.StartsWith("important", StringComparison.InvariantCulture); 
    foreach(var importantKey in myImportantKeys) 
    { 

    } 
} 

Các thông điệp mà tôi nhận được là System.Web.MVC.IValueProvider không chứa một định nghĩa cho Keys. Ai đó có thể khai sáng cho tôi về cách để giải quyết vấn đề này.

Trả lời

2

Gosh, mã đó trông quen thuộc!

Bạn không thể nhận danh sách các giá trị Khóa từ IValueProvider. Bạn phải truy cập nguồn, ví dụ:

var keys = controllerContext.HttpContext.Request.QueryString.AllKeys.Where(... 
+0

vui vì bạn nên trả lời! ... nhưng bạn là người hoàn hảo. n? Tôi đang cố gắng tạo một bộ mô hình tùy chỉnh lấy các giá trị "quan trọng" nhưng kích hoạt một thường trình để áp dụng một số mã hóa đặc biệt cho các giá trị. Đây có phải là cách hay để làm điều đó không? –

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