Tôi đang sử dụng ASP.NET MVC 3 và có một số trang mà phần lớn Mô hình Xem là chỉ đọc. Một lĩnh vực ví dụ sẽ là như vậy:ASP.NET MVC 3 - Cách thực hành tốt nhất để xử lý Model trong View
<div class="display-label">My Field</div>
<div class="display-field">@Model.MyField</div>
sau đó tôi đã một lĩnh vực mà người dùng phải gõ vào một số văn bản xác minh như vậy:
@Html.LabelFor(model => model.Verification)
@Html.PasswordFor(model => model.Verification)
Khi người dùng gửi các hình thức và nó chạm của tôi điều khiển, các trường ViewModel là tất cả null trừ trường xác minh. Cách tôi đã nhận được xung quanh này, cho đến nay, là có một số lĩnh vực HiddenFor như vậy:
@Html.HiddenFor(model => model.MyField)
Tuy nhiên, điều này trở nên xấu xí thực sự nhanh chóng. Có cách nào tốt hơn để xử lý mô hình trong trạng thái xem như vậy trong suốt quá trình gửi biểu mẫu, tôi có thể nhận tất cả các trường của tôi không? Điều này rất quan trọng trong trường hợp văn bản xác minh không khớp trong POST và tôi cần trả về mô hình khung nhìn mà không cần truy xuất lại nó từ cơ sở dữ liệu.
Cảm ơn mọi đề xuất.
Bạn có thể nhận được các lo ngại về bảo mật bằng cách sử dụng trình trợ giúp '@ Html.AntiForgeryToken()'? – Brandon
Tôi nghi ngờ điều đó. Tôi không biết nhiều về chức năng AntiForgeryToken, nhưng nhiều khả năng người dùng có thể xem mã nguồn của trang để xem mã thông báo nào họ cần cung cấp để hoạt động. Các mã thông báo giả mạo là nhiều hơn cho các cuộc tấn công kịch bản cross-site, không phải để bảo vệ giá trị, và bây giờ có cách để nó biết nếu một lĩnh vực có nghĩa là để được cung cấp hay không.Bất cứ điều gì có nghĩa là để được an toàn cần phải được xử lý phía máy chủ, và bạn không thể dựa vào các tính năng phía khách hàng cho an ninh – KallDrexx
Tôi đã kết thúc chỉ cần tải lại đối tượng dụ của tôi trong bộ điều khiển. – Brandon