【问题标题】:MVC and AngularJS routingMVC 和 AngularJS 路由
【发布时间】:2015-09-11 19:55:17
【问题描述】:

我创建了一个 MVC 应用程序并添加了一个 Angularjs nuget。 它是为它创建 HomeController 和视图的。 家庭控制根本没有改变。 我的文件夹层次结构:

Index.cshtml:

<!DOCTYPE html>
<html>

<head>
    <script src="~/Scripts/angular.js"></script>
    <script src="~/Scripts/angular-route.js"></script>
    <script src="~/Scripts/App/App.js"></script>

    <title>Title</title>
</head>

<body ng-app="sampleApp">

    <a href="#/route1">Route 1</a><br />
    <a href="#/route2">Route 2</a><br />

    <div ng-view></div>

    <script>
        var module = angular.module("sampleApp", ['ngRoute']);

        module.config(
            function ($routeProvider, $locationProvider) {
                $routeProvider.
                    when('/route1', {
                        templateUrl: 'Views/Home.html',
                        controller: 'RouteController'
                    }).
                    when('/route2', {
                        templateUrl: 'Views/Home.html',
                        controller: 'RouteController'
                    }).
                    otherwise({
                        redirectTo: '/'
                    });
            });

        module.controller("RouteController", function ($scope) {
            alert("I am here");
        })
    </script>
    </body>
</html>

单击链接会产生 404 错误 http://localhost:50265/Home/Views/Home.html - 这是生成的链接。 我不明白为什么在链接中插入了 Home。 正如错误页面所说,它期望物理路径

E:\SoftServe\IndividualTask\IndividualTask\Home\Views\Home.html

但我在根文件夹E:\SoftServe\IndividualTask\IndividualTask 中没有 Home 文件夹 我将路由设置为“Views/Home.html”,但没有设置为“Home/Views/Home.html”。

路由的基本路径是什么?如何让它发挥作用?

【问题讨论】:

  • MVC 不允许访问视图文件夹中的文件。您需要通过在 web.config 中定义处理程序来操作该东西。

标签: angularjs asp.net-mvc


【解决方案1】:

MVC 不允许访问视图文件夹中的文件..你需要 通过在 web.config 中定义处理程序来操作那个东西

谢谢。我找到了这篇文章:http://forums.asp.net/t/1689087.aspx?ASP+NET+MVC+Using+content+in+Views+folder 并替换

<add name="BlockViewHandler" path="*" verb="*" preCondition="integratedMode" type="System.Web.HttpNotFoundHandler" />

<add name="BlockViewHandler" path="*.cshtml" verb="*" preCondition="integratedMode" type="System.Web.HttpNotFoundHandler" />

在 web.config 文件中,该文件允许从 View 文件夹中获取文件,并且不允许仅从中获取 *.cshtml 文件。

【讨论】:

    猜你喜欢
    • 2015-04-02
    • 2014-11-22
    • 1970-01-01
    • 2017-06-10
    • 1970-01-01
    • 2015-05-15
    • 2014-12-09
    • 2016-05-26
    • 1970-01-01
    相关资源
    最近更新 更多