2009-03-20 39 views
5

Tôi có một trang có chế độ xem rất lớn (> 300KB). ...Vâng, tôi biết. Tôi đã thu hẹp sự bất thường này xuống một điều khiển người dùng, nhưng đang gặp khó khăn khi xác định chính xác điều khiển đó đang đặt trong đó.

Tôi đã ghi đè SavePageStateToPersistenceMedium trong trang, nhưng không tuyệt vời khi làm việc với đối tượng viewstate được truyền vào. Tôi có thể chuyển nó vào một hàm đệ quy có thể in ra mọi thứ trong đối tượng không?

Tôi đã thử sử dụng bộ giải mã tuyến tính sẵn có tự do, nhưng không có bộ giải mã nào hoạt động. Tôi luôn luôn nhận được lỗi khi nó cố gắng để deserialize các viewstate.

Tôi tìm rất nhiều đoạn mã ở đây.

Cảm ơn,
Đánh dấu

Cảm ơn đã gợi ý traceing, đặc biệt. điều trace.axd. Nhưng điều đó vẫn chỉ cho tôi biết mức độ kiểm soát lớn như thế nào, nó không nói cho tôi biết cái gì trong khung nhìn. Tôi muốn có thể nhìn thấy nếu có những đối tượng mà tôi đang sắp xếp một cách sai lầm đến viewstate.Cách tốt nhất để xác định nội dung trong chế độ xem của tôi là gì?

+0

Loại điều khiển nào? –

+0

Điều khiển này cho phép bạn xây dựng tiêu chí tìm kiếm động để truy vấn đối với cơ sở dữ liệu. (Tôi không biết nếu đó là câu trả lời bạn đang tìm kiếm) – MStodd

Trả lời

1

Tôi đã từng sử dụng trace.axd. Nó liệt kê mỗi yêu cầu và đổ các nội dung của ViewState. Bạn sẽ phải bật truy tìm trong web.config. Nếu bạn có rất nhiều yêu cầu, bạn sẽ muốn cập nhật kích thước bộ nhớ cache lên hơn 10.

0

Về vấn đề với bộ giải mã ViewState, bạn có thể đã mã hóa ViewState. Kiểm tra bài đăng này bằng các nhận xét/liên kết trên đó: http://www.testingreflections.com/node/view/3424.

Cập nhật: hãy thử tắt hoàn toàn vào các yếu tố trang trong web.config:

<pages ... viewStateEncryptionMode="Never" ... /> 

Xem phần view state trong doc MSDN này How To: Configure MachineKey in ASP.NET 2.0

+0

Tôi đã xóa cài đặt 'machineKey' khỏi web.config của mình, nhưng tôi vẫn nhận được "Đã xảy ra lỗi khi giải mã chuỗi ViewState: Dữ liệu được tuần tự hóa không hợp lệ. " trong bộ giải mã của tôi. – MStodd

+0

@MStodd đã thêm một bản cập nhật với nhiều thông tin hơn, hãy kiểm tra để hoàn toàn loại bỏ nó đang được mã hóa. – eglasius

0

tôi sẽ chỉ cần thêm vết = "true "vào trang chỉ thị trên máy cục bộ của bạn. Phần cây điều khiển sẽ cho bạn thấy kích thước khung nhìn của mỗi điều khiển.

1

Fritz Onion's ViewState Decoder là những gì bạn cần!

+0

Tôi ước nó sẽ hoạt động, nhưng tôi tiếp tục nhận được "Đã xảy ra lỗi khi giải mã chuỗi ViewState: Dữ liệu được tuần tự hóa không hợp lệ". trong bộ giải mã của tôi. Đây là ngay cả sau khi tôi đã xóa cài đặt 'machineKey' khỏi web.config. – MStodd

+1

Chỉ cần thử v2.2 vào ngày này, đã làm việc tuyệt vời! –

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