Tôi kiểm tra xem quá trình liên kết mô hình đã có thể xác nhận các dữ liệu gửi cho người sử dụng bằng cách đọc các giá trị của các tài sản ModelState.IsValid. Nếu mọi thứ đều OK, tôi lưu các thay đổi vào kho và chuyển hướng người dùng đến các hành động Index để họ nhìn thấy danh sách sửa đổi của sản phẩm. Nếu có một vấn đề với các dữ liệu, tôi vẽ lại giao diện mặc định một lần nữa để người dùng có thể sửa chữa.
Sau khi tôi đã lưu các thay đổi trong kho, tôi lưu trữ tin nhắn sử dụng các tính năng dữ liệu tạm thời, mà là một phần của ASP. lõi tính năng trạng thái phiên NET. Đây là một từ điển chính / giá trị tương tự như các phiên dữ liệu và tính năng xem túi tôi sử dụng trước đây. Sự khác biệt chính từ dữ liệu session là dữ liệu tạm thời vẫn tồn tại cho đến khi nó được đọc.
Tôi không thể sử dụng ViewBag trong tình huống này vì ViewBag chuyển dữ liệu giữa bộ điều khiển và xem và nó không thể chứa dữ liệu trong thời gian dài hơn so với yêu cầu HTTP hiện tại. Khi chỉnh sửa thành công, trình duyệt sẽ chuyển hướng đến một URL mới, vì vậy dữ liệu ViewBag bị mất. Tôi có thể sử dụng tính năng dữ liệu phiên, nhưng sau đó tin nhắn sẽ được kéo dài cho đến khi tôi dứt khoát loại bỏ nó, mà tôi không muốn có để làm.
Vì vậy, các tính năng dữ liệu temp là hoàn toàn phù hợp. Các dữ liệu bị hạn chế đến phiên một người dùng duy nhất (để người dùng không thấy TempData của nhau) và sẽ vẫn tồn tại đủ lâu để tôi đọc nó. Tôi sẽ đọc dữ liệu trong giao diện được đưa ra bởi các phương pháp hành động mà tôi đã chuyển hướng người sử dụng, mà tôi xác định trong phần tiếp theo.
Đối với các POST-chế biến Chỉnh sửa phương pháp hành động, tôi cần phải chắc chắn rằng bản cập nhật hợp lệ để các đối tượng sản phẩm đó là nhận như là đối số phương pháp được thông qua vào kho sản phẩm để được cứu. Tôi cũng muốn kiểm tra cập nhật không hợp lệ (trong đó một lỗi mô hình xác nhận tồn tại) không được thông qua vào kho. Dưới đây là các phương pháp kiểm tra, mà tôi thêm vào AdminControllerTests.cs file:
[Fact]
đang được dịch, vui lòng đợi..