Thực tế là có. Bạn phải quên đi cách thức kiên trì được tạo ra với khung nhìn.
Bạn cũng phải chuyển đổi trong postback tâm trí của mình lên trang để "gọi tới bộ điều khiển". Bằng cách này mọi thứ sẽ dễ hiểu hơn sau đó.Thay vì gọi một trang, bạn đang gọi một bộ điều khiển trả về một khung nhìn. Vì vậy, hoặc bạn đang xây dựng toàn bộ "trang" của bạn một lần nữa trên mọi cuộc gọi hoặc bạn quyết định chỉ giải quyết những gì thực sự bị ảnh hưởng bởi hành động. Nếu nút đang thay đổi div, tại sao phải tải lại toàn bộ trang. Chỉ cần gọi cho bộ điều khiển của bạn và trả về dữ liệu mới trong div của bạn.
ví dụ chúng ta hãy tưởng tượng một kịch bản tổng thể/chi tiết:
<h2>Groups</h2>
<div id="GroupList">
</div>
<div id="GroupDetail" title="Detail Group">
</div>
Danh sách các nhóm được nạp một lần trong div và có là một cuộc gọi ajax thể một bộ điều khiển cho từng hạng mục của danh sách các nhóm :
<%= Ajax.ActionLink("Edit", "DetailLocalisationGroup",
new { id = group.Id },
new AjaxOptions() {
UpdateTargetId = "DetailLocalisationGroup",
OnSuccess = "InitialisationDetailGroup" })%>
gọi hành động này là DetailLocalisationGroup để nạp nhóm divDetail với html.
[AcceptVerbs("POST")]
public ActionResult DetailLocalisationGroup(int id)
{
LocalisationGroup group = servicelocalisation.GetLocalisationGroup(id);
return View("DetailGroup", group);
}
Hiện tại có một biểu mẫu trong div và khi nhấn nút gửi của biểu mẫu này, chúng tôi chỉ gửi thông tin mà chúng tôi thực sự cần đến bộ điều khiển để lưu dữ liệu trong cơ sở dữ liệu.
Trong tất cả những sự kiện này, các GroupList tràn ngập những thứ mà được hiển thị trên màn hình của khách hàng, nhưng không có sự tương tác là cần thiết ở đó và vậy tại sao bận tâm chính mình với một ViewState cho những ...
Tôi nhận ra trang web là không quốc tịch và tôi có ý nghĩa so với biểu mẫu web asp.net ... –