我一直在网上搜索解决方案,但找不到任何可以解决我问题的方法。 我正在尝试使用AngularJS和MVC进行客户端路由。
这是我用于指南行的Plunker,但它对我没有帮助。我的MVS2 Project文件夹结构如下: $根/查看/主页/ Home.html中
我得到的错误是无法找到该页面。我在这里缺少什么?
AngularJS
// create the module and name it myApp
var myApp= angular.module('myApp', ['ngRoute']);
// configure our routes
myApp.config(function ($routeProvider) {
$routeProvider.when('/', {templateUrl: 'Home.html',controller: 'mainController'})
});
// create the controller and inject Angular's $scope
scotchApp.controller('mainController', function ($scope) {
// create a message to display in our view
$scope.message = 'Home Page should appear here';
});
HTML
<html data-ng-app="myApp">
<head runat="server">
<title>
<asp:ContentPlaceHolder ID="TitleContent" runat="server" />
</title>
</head
<body data-ng-controller="mainController">
<div id="Div1">
<div data-ng-view></div>
</div>
</body>
</html>
答案 0 :(得分:4)
MVC阻止访问Views
文件夹!它将始终返回HTTP状态404!
为什么?这是为了安全起见。它阻止访问者查看源代码的视图文件(ascx,cshtml,vbhtml等)。
如何完成?您会注意到Views
文件夹中有web.config
。 Web.config
配置为返回404。
以下是web.config
<add name="BlockViewHandler" path="*" verb="*" preCondition="integratedMode" type="System.Web.HttpNotFoundHandler" />
请注意,对于任何路径和任何HTTP方法,处理程序都是HttpNotFoundHandler
解决方案:不要将View
文件夹用于AngularJS模板或修改web.config
,风险自负
答案 1 :(得分:1)
LostInComputers给我的答案我找到了一个将html页面注入我的MVC项目的解决方案。
<强>的.js 强>
var myApp = angular.module('myApp', ['ngRoute']);
myApp.config(function ($routeProvider) {
$routeProvider
.when('/', {
templateUrl: '/templates/Home.html',
controller: 'mainController'
})
.when('/about', {
templateUrl: '/templates/About.html',
controller: 'mainController'
})
$routeProvider.otherwise({ redirectTo: '/' });
});
我所做的是在我的根目录中创建模板文件夹,并在其中添加我的 .html 页面。 这对我很有用。