Передача данных из контроллера в просмотр без изменения маршрута

0

Скажем, у меня есть несколько контроллеров, включая BaseControlelr и я хочу делать некоторые запросы и отправлять данные в свой Index.cshtml, но я не Index.cshtml URL-адрес, поскольку это одностраничное приложение. Обычно я определял маршрут для моего запроса Get и извлекал его с помощью Angular $http.get, но есть ли другой способ передать модель непосредственно с моего контроллера на мой взгляд?

  • 0
    у вас может быть метод внутри вашего контроллера, который будет создавать Ajax, используя $http и вы будете использовать эти данные, возвращаемые ajax.
  • 0
    Я ищу не-AJAX метод
Показать ещё 3 комментария
Теги:
asp.net-mvc

1 ответ

1
Лучший ответ

но есть ли другой способ передать модель прямо с моего контроллера на мой взгляд?

Конечно, есть. В ASP.NET MVC действие контроллера может вернуть модель представления строго типизированному представлению:

public ActionResult Index()
{
    MyViewModel model = ...
    return View(model);
}

и в вашем строго типизированном виде вы можете просто сериализовать эту модель представления как Angular constant доступную вашему угловому приложению:

@model MyViewModel
<script>
    angular.module('myApp').constant('model', @Html.Raw(Json.Encode(Model)));
</script>

Теперь в вашем приложении "Угловое" вы можете играть с этой переменной model:

angular.module('myApp').controller('MainCtrl', ['$scope', 'model', function($scope, model) {
    $scope.model = model;
}]);

И в соответствующем шаблоне:

<div ng-controller="MainCtrl">
    Hello {{FirstName}} {{LastName}}
</div>

Это, конечно, начальная загрузка вашего SPA. Оттуда вам может понадобиться использовать чистые методы клиентской стороны для работы с моделью.

  • 0
    Спасибо, но что, если для передачи в Index.cshtml требуется более одной модели?
  • 0
    Вау, как это вообще имеет смысл? Давайте повторим самые основы шаблона, который вы используете: MVC: M обозначает Model, V обозначает View, а C обозначает Controller. Поэтому разговор о том, что разные модели в одном представлении противоречат всей парадигме самой структуры, которую вы используете.
Показать ещё 3 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню