为什么这不是在MVC空Web应用程序ANGULAR中加载view1.cshtml

时间:2015-04-03 13:43:06

标签: angularjs angularjs-directive angularjs-scope angular-routing

我正在学习Angular。我正在观看一个2岁的视频,我正在尝试使用路线概念并在view1.CShtml中使用(请记住,它的CShtml而不是html,而在视频中,他使用的是html)。

我也发现,视频路径以视图演示器所具有的Partial / View1相反,视图路径以〜Views / View1.cshtml(在视频文件夹中足够公平)开始。现在,当我有类似的示例目录结构时,我不明白这是什么“〜”。

另外,遗憾的是,view1没有加载:(有什么问题?当然他使用的是单个模块和控制器,但我也试图使用依赖模块也用于我自己的学习....这里有什么问题?

                           

    angular.module('App', ['myFirstApp']).controller('Fir', function ($scope) {
        $scope.Customers = [
      { name: 'Kiam', city: 'Los Angeles' },
      { name: 'Se', city: 'Los Vegas' }
        ]
    }).config(function ($routeProvider) {
        $routeProvider
        .when('/View1',
        {
            controller: 'Fir',
            templateUrl: '~Views/View1.cshtml'
        })
        .when('/View2',
        {
            controller: 'First',
            templateUrl: '~Views/View2.cshtml'
        })
        .otherwise({ redirectTo: '/View1' });
    });


    var temp = angular.module('myFirstApp', []);

    var controllerCollection = {};
    controllerCollection.First = function ($scope) {
        $scope.Customers = [
      { name: 'Sita', city: 'Los Angeles' },
      { name: 'Ram', city: 'Los Vegas' },

        ]
    };

    temp.controller(controllerCollection);

2 个答案:

答案 0 :(得分:0)

.cshtml页面是C#razor页面,需要使用ASP.net视图引擎加载,就像你可以在A控制器中声明一个动作并从那里返回一个cshtml视图

<强>代码

public ActionResult View1()
{
    return View();
}

否则您需要创建一个静态文件夹,该文件夹不会包含在Views文件夹中,Asp.net限制访问views文件夹。

参见参考SO Answer

答案 1 :(得分:0)

你可以尝试这样。当(&#39; / View1&#39;,{控制器:&#39; Fir&#39;,templateUrl:&#39; / MyViews / View1&#39;}),它& #39;够了。并检查路由配置是否添加了路由路径。如果您使用$ routeprovider,它将自动在global.asax中生成路由路径。

无需为要显示的视图页面另外指定.cshtml。