Я пишу приложение MVC, и я решил, что Knockout.js поможет с множеством моих проблем, кроме этого процесса, он создал новый вопрос, что у меня проблемы с решением проблемы.asp.net MVC с MVVM через нокаут, передать модель на javascript
Я преобразовал все мои конечные точки MVC, чтобы просто возвращать представления, а затем я создал несколько других конечных точек, которые возвращают объекты JSON. Когда пользователь просматривает веб-сайт, сайт загружает основной фрейм пользовательского интерфейса. После этого Knockout.js загружает модель через вызовы AJAX. Это вызвало загрузку каждой страницы, а затем снова «загрузило», где, как и только с MVC, страница загрузилась, и все данные были представлены.
Я искал способы заставить оба загружать одновременно, но я не нашел ничего, что не требовало бы, чтобы я полностью реорганизовал сайт. Лучший вариант был:
- Объединить JSON конечные точки в поле зрения конечных точек и преобразовывать модели в формате JSON в коде с помощью
@Html.Raw(Json.Encode(object))
, но тогда я должен получить поездку всех моих чистых JSON конечных точек.
Есть ли что-нибудь еще, что я могу сделать, чтобы передать данные конечной точки JSON в виде на сервере? Или любой способ получить модель и представление для загрузки в одно и то же время?
Благодарим вас за ответ! Просто чтобы я мог убедиться, что я на той же странице, я должен назвать конечные точки JSON внутри просмотров? Что-то вроде: var model = @ Html.Action («Данные», «Элементы»), где модель находится в js? –
Вызывайте только конечные точки JSON для обновлений. Если вы создаете объект ViewModel и взаимодействуете с ним в Javascript, вы должны иметь только представления, взаимодействующие с этим объектом, и иметь методы, которые инкапсулируют запрос AJAX (взятие с конечными точками контроллера). Это позволит вам делать такие интеллектуальные вещи, как кеширование или обновление. –
Итак, мои конечные точки представления должны возвращать модель, которая переведена на JavaScript, и у меня должны быть конечные точки json, которые возвращают обновленную версию этой модели? Что я могу сделать для устранения дублирования кода? Я в этом случае? –