Tôi đã nhìn vào mẫu hệ biên tập trên knockout.js website:Cần để truyền dữ liệu viewmodel ban đầu từ ASP.NET MVC để knockout.js
http://knockoutjs.com/examples/contactsEditor.html
Mẫu hoạt động hoàn hảo, nhưng tôi cần để thực hiện hai thay đổi cho nó:
- Vượt qua dữ liệu ban đầu từ phương pháp tác vụ điều khiển ASP.NET MVC 3. Đây là đoạn mã từ máy chủ:
Lớp
mẫu mã phía khiển
List<Phone> phoneList = new List<Phone>();
Person p1 = new Person()
{
FirstName = "Abc",
LastName = "Xyz"
};
Phone phone1 = new Phone()
{
Type = "Home",
Number = "1111111111"
};
Phone phone2 = new Phone()
{
Type = "Mobile",
Number = "1111111112"
};
phoneList.Add(phone1);
phoneList.Add(phone2);
p1.Phones = phoneList;
List<Phone> phoneList2 = new List<Phone>();
Person p2 = new Person()
{
FirstName = "Pqr",
LastName = "Stu"
};
Phone phone3 = new Phone()
{
Type = "Home",
Number = "1111111113"
};
Phone phone4 = new Phone()
{
Type = "Mobile",
Number = "1111111114"
};
phoneList2.Add(phone3);
phoneList2.Add(phone4);
p2.Phones = phoneList2;
people.Add(p1);
people.Add(p2);
ViewBag.InitialData = Json(people, JsonRequestBehavior.AllowGet);
- Ngoài dãy địa chỉ liên lạc là một phần của các ViewModel , Tôi cũng cần truyền một số dữ liệu (ví dụ: ContactListName và ContactListOwner) không thuộc về các hàng liên hệ mà chính là chính ViewModel. Các thuộc tính này sẽ được hiển thị bên ngoài lưới liên hệ.
Tôi thực sự đánh giá cao nếu ai đó có thể giúp tôi với điều này.
những gì hiện các 'ViewBag.InitialData' chứa bạn có thể đăng mã điều khiển? bạn định sử dụng 'ViewBag.InitialData' trong' ko.applyBindings (new ContactsModel (initialData)); '? – Rafay
Cảm ơn @ 3nigma vì phản hồi của bạn. Tôi đã thêm mã điều khiển bên trong câu hỏi của mình. Và có, tôi định sử dụng ViewBag.InitialData trong ko.applyBindings (new ContactsModel (initialData)) nếu có thể. – Yasir