Хорошо, я знаю, что это длинный выстрел.
Я использую asp.net mvc на сервере. У меня будет действие, которое вернет json viewmodel, который будет иметь несколько простых свойств, а также объекты и коллекции объектов. Например
public class ViewModel
{
public string Name {get;set;}
public Person Person {get;set;}
public IEnumerable<SleectListItem> UserTypes {get;set;}
}
public class Person
{
public string FirstName {get;set;}
public string LastName {get;set;}
public int UserType {get;set;}
}
a SelectListType - это просто пара имя-значение со свойствами «Текст» и «Значение» и «Выбранные»
Идея состоит в том, что существует форма, в которой вы можете создать человека, указав там имя, фамилию и выбрав тип пользователя из выпадающего списка.
Я хотел бы иметь набор моделей backbone.js, например
.
app.MyViewModel=Backbone.Model.extend();
app.Person=Backbone.Model.extend();
app.SelectListItem=Backbone.Model.Extend();
app.UserTypes=Backbone.Collection.Extend({
model:app.SelectListType
})
и иметь возможность заполнять MyViewModel, передавая Json, возвращенный с сервера, который будет выглядеть примерно так
{Name:'SomeName',
Person:{
FirstName:'Frank',
lastName:'Jones'
},
UserTypes:[{Text:'Admin',
Value:1,
selected:false},
{text:'peon',
Value:2,
selected:false}
Это не традиционный способ, которым я знаю. Я предполагаю, что у меня должен быть один вызов для каждого объекта или чего-то еще, но я действительно хочу сделать только один вызов на сервер, чтобы получить все данные, которые мне нужны, так как они уже собираются и правильно размещаются на сервере.
Я мог бы написать всевозможные циклы для заполнения всех различных коллекций и т. Д. После получения данных, но нет ли более эффективного способа сделать это?