说我有几个控制器,包括一个BaseControlelr
,我想做一些查询并将数据发送到我的Index.cshtml
,但我没有更改网址,因为这是一个单页面的应用程序。通常我会为我的Get
请求定义一个Route并使用Angular $http.get
检索它,但还有其他方法可以将模型直接从我的控制器传递到我的视图吗?
答案 0 :(得分:1)
但有没有其他方法可以直接从我的模型传递模型 控制器到我看来?
当然有。在ASP.NET MVC中,控制器操作可以将视图模型返回到强类型视图:
public ActionResult Index()
{
MyViewModel model = ...
return View(model);
}
并且在强类型视图中,您可以将此视图模型序列化为Angular应用程序可用的Angular constant
:
@model MyViewModel
<script>
angular.module('myApp').constant('model', @Html.Raw(Json.Encode(Model)));
</script>
现在,在Angular应用程序中,您可以使用此model
变量:
angular.module('myApp').controller('MainCtrl', ['$scope', 'model', function($scope, model) {
$scope.model = model;
}]);
并在相应的模板中:
<div ng-controller="MainCtrl">
Hello {{FirstName}} {{LastName}}
</div>
这当然是SPA的初始引导。从那以后,您可能需要使用纯客户端技术来处理模型。