【发布时间】:2014-12-16 17:59:29
【问题描述】:
我是 Angular 新手并尝试在 asp.net mvc 4 应用程序中实现路由。我的控制器正在工作和路由进行更新,但不将信息加载到视图中。有人知道为什么吗?
JobParsing.js
var JobParsing = angular.module('JobParsing', []);
JobParsing.controller('LandingPageController', LandingPageController);
var configFunction = function($routeProvider) {
$routeProvider.
when('/routeOne', {
templateUrl: 'home/one',
controller: 'LandingPageController'
})
.when('/routeTwo', {
templateUrl: 'home/two',
controller: 'LandingPageController'
});
};
configFunction.$inject = ['$routeProvider'];
JobParsing.config(configFunction);
LandingPageController.js
var LandingPageController = function($scope) {
$scope.models = {
helloAngular: 'I work! Hello!'
};
};
LandingPageController.$inject = ['$scope'];
_布局
<!DOCTYPE html>
<html lang="en" data-ng-app="JobParsing" data-ng-controller="LandingPageController">
<head>
<meta charset="utf-8" />
<title data-ng-bind="models.helloAngular"></title>
</head>
<body>
@RenderBody()
<input type="text" data-ng-model="models.helloAngular" />
<h1>{{models.helloAngular}}</h1>
<ul>
<li><a href="/#/routeOne">Route One</a></li>
<li><a href="/#/routeTwo">Route Two</a></li>
</ul>
<div data-ng-view=""></div>
<script src="~/Scripts/angular.js"></script>
<script src="~/Scripts/angular-route.js"></script>
@Scripts.Render("~/bundles/JobParsing")
</body>
</html>
一个.cshtml(两个.cshtml相同)
<h2>One</h2>
【问题讨论】:
-
你的 One.cshtml 文件是否放在 Views/Home/One.cshtml 中?
-
我建议使用部分视图。我试过了,没有问题。
-
@DaniCE 是的,你说得对
-
@blacai 部分视图也不起作用
-
如果您在 routeconfig 中定义这样的部分视图:
when('/myapp/:partialViewId', { templateUrl: function (params) { return '/MainController/Action/' + params.partialViewId; }, })并且您的 MainController 使用PartialViewResult定义的方法应该可以工作。
标签: c# asp.net asp.net-mvc angularjs asp.net-mvc-4