Как внедрить коллекцию моделей в backbone.js из asp.net mvc? - PullRequest
2 голосов
/ 12 февраля 2012

Я видел примеры в backbone.js, где говорится, что исходная коллекция моделей должна загружаться на страницу, а не выходить за ней.Этот момент имеет смысл.По какой-то причине я не могу понять, как это сделать с помощью приложения asp.net mvc.Я начал быстрый пример ниже.

Действие контроллера:

public ActionResult Index()  
{
    CustomerRespository repository = new CustomerRespository();

    ViewModel model = new ViewModel();
    model.Customers = repository.GetAll();           

    return View(model);
}

Просмотреть модель: Здесь я создаю json, необходимый для добавления моего списка клиентов в приложение.

public List<Customer> Customers { get; set; }
public string CustomerJson
{
    get
    {
        JavaScriptSerializer serializer = new JavaScriptSerializer();                
        return serializer.Serialize(this.Customers);        
    }
}

Расшифровка json на мой взгляд:

@{ string s = HttpUtility.HtmlDecode(Model.CustomerJson); }

Вызов collection.reset () в приложении backbone.js:

this.customers = new CustomerCollection();
this.customers.reset("@s");

По какой-то причине это не работает правильно,

1 Ответ

5 голосов
/ 12 февраля 2012

Удалите свойство CustomJson из вашей модели.Вам это не нужно.

public List<Customer> Customers { get; set; }

достаточно.

И тогда, на ваш взгляд:

<script type="text/javascript">
    this.customers = new CustomerCollection();
    this.customers.reset(@Html.Raw(Json.Encode(Model.Customers)));
    ...
</script>

сгенерирует что-то вроде:

<script type="text/javascript">
    this.customers = new CustomerCollection();
    this.customers.reset([{"Id":1,"Name":"Foo"}, {"Id":2,"Name":"Bar"}]);
    ...
</script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...