2013-02-21 62 views

Trả lời

14

Theo mặc định, TempData sử dụng Phiên ASP.NET làm bộ nhớ. Vì vậy, nó được lưu trữ trên máy chủ (InProc là mặc định). Nhưng bạn có thể định nghĩa các chế độ trạng thái phiên ASP.NET khác: StateServer và SqlServer. Bạn cũng có thể viết một nhà cung cấp TempData tùy chỉnh và tự xử lý lưu trữ nếu bạn không muốn sử dụng Phiên ASP.NET.

+0

Cảm ơn bạn rất nhiều. Tôi sẽ điều tra thêm về các chế độ trạng thái phiên ASP.NET, điều đó mới mẻ đối với tôi. –

5

Nó được lưu trữ trong lưu trữ phiên, nhưng có một sự khác biệt quan trọng giữa TempDataSession:

TempData có sẵn chỉ dành cho phiên của người dùng, vì vậy nó vẫn tồn tại chỉ đến khi chúng tôi đã đọc nó và được xóa ở cuối Yêu cầu HTTP.

Kịch bản phù hợp với việc sử dụng TempData, là khi dữ liệu cần phải tồn tại giữa hai yêu cầu - một kịch bản chuyển hướng. Một kịch bản khác mà tôi có thể nghĩ là trả về một thông báo lỗi sau khi một thao tác POST thất bại.

+0

Cảm ơn người đàn ông, tôi ước tôi có thể chọn nhiều hơn một câu trả lời được chấp nhận. –

+1

* TempData chỉ khả dụng cho phiên của người dùng, do đó, nó chỉ tồn tại cho đến khi chúng tôi đọc và được xóa ở cuối Yêu cầu HTTP. * Phiên kéo dài hơn yêu cầu HTTP. Vậy là * TempData chỉ có sẵn cho phiên của người dùng * chính xác? –

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