Angular-ASPnet - 路由失败

时间:2015-11-12 08:43:49

标签: asp.net angularjs angularjs-routing

验证后,我需要访问我的主页面。 我的控制器Angular:



$window.location.href = 'Home/Index';




到达我的索引页面后,我收到以下错误: enter image description here

我不明白这个错误我的网址是否正确。 谢谢 更多细节:

我有一个启动页面,可以让我登录(RouteConfig.cs):



      name: "Default",
                url: "{controller}/{action}/{id}",
               defaults: new { controller = "Login", action = "Authentification", id = UrlParameter.Optional }




经过身份验证后,我必须转到包含多个内容页面的应用程序主页面,主页面和登录页面是不同的模块。这是转到我的主页面的脚本: 在我的主页面中,应首先显示的是主页,根据以下脚本:



    $routeProvider.otherwise(
                    {
                        redirectTo: '/HomePage'
                    });




我的问题是我可以看到我的主页但是我没有内容页面HomePage"。 (错误404无法加载模板)

但如果我改变RouteConfig.cs,那就OK:



 routes.MapRoute(
                name: "Default",
                url: "{controller}/{action}/{id}",
               defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
               
            );




我的问题是从登录页面到我的主页面。 ASP控制器是好的

配置$ rootProvider:



var MainApp = angular.module("MainApp",
    [
        "ngRoute",
        "GlobalParamServices",
        "HomePageApp",
        "ListCollaborateurApp",
        "CollaborateurServices",
        "ShowEditCollaborateurApp",
        "AddNewCollaborateurApp",
        "ListRoleApp",
        "ShowEditRoleApp",
        "AddNewRoleApp"
    ]);

//Showing Routing
MainApp.config(['$routeProvider', '$locationProvider', function ($routeProvider, $locationProvider) {
    debugger;
    //Main
    $routeProvider.otherwise(
                    {
                        redirectTo: '/HomePage'
                    });
    $routeProvider.when('/HomePage',
                        {
                            templateUrl: 'Home/HomePage',
                            controller: 'HomePageController'
                        });
    //Collaborateur
    $routeProvider.when('/ListCollaborateur',
                        {
                            templateUrl: 'Collaborateur/ListCollaborateur',
                            controller: 'ListCollaborateurController'
                        });
    $routeProvider.when('/AddNewCollaborateur',
                        {
                            templateUrl: 'Collaborateur/AddNewCollaborateur',
                            controller: 'AddNewCollaborateurController'
                        });
    $routeProvider.when('/ShowEditCollaborateur',
                       {
                           templateUrl: 'Collaborateur/ShowEditCollaborateur',
                           controller: 'ShowEditCollaborateurController'
                       });

    //Role
    $routeProvider.when('/ListRole',
                   {
                       templateUrl: 'Role/ListRole',
                       controller: 'ListRoleController'
                   });
    $routeProvider.when('/AddNewRole',
                    {
                        templateUrl: 'Role/AddNewRole',
                        controller: 'AddNewRoleController'
                    });

    $routeProvider.when('/ShowEditRole',
                      {
                          templateUrl: 'Role/ShowEditRole',
                          controller: 'ShowEditRoleController'
                      });



    //$locationProvider.html5Mode(true).hashPrefix('!')
}]);




你有解决这个案子的方法吗? 谢谢,

1 个答案:

答案 0 :(得分:0)

Angular抱怨无法从服务器加载模板。您需要在HomeController for HomePage中添加操作,以便ASP.NET MVC返回视图。

public class HomeController : Controller
{
    public ActionResult HomePage()
    {
        return View();
    }
}