2015-09-17 51 views
0

我迷路了..ASP.NET MVC角路由

对于现在,我试图让它的工作..我做了一个MVC站点代码首先与EF。然后我架式控制器和API(试过ALOT变薄)

我routeConfig:

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

我WbApiConfig: config.MapHttpAttributeRoutes();

 config.Routes.MapHttpRoute(
      name: "DefaultApi", 
      routeTemplate: "api/{controller}/{id}", 
      defaults: new { id = RouteParameter.Optional } 
     ); 

我的控制器操作应该返回什么? JSON?看法?

我的NG-应用程序是在我的/首页/索引(使用布局和布局对HTML NG应用程序)

,最后,我ngApp

app.config(['$routeProvider', function ($routeProvider, $locationProvider) { 
$routeProvider 
    // route for the home page 
    .when('/', { 
     templateUrl: 'Home/Index', 
     controller: 'mainController' 
    }) 
    .when('/Home/About', { 
     templateUrl: '/Home/About', 
     controller: 'programsCtrl' 
    }); 
}]); 

所以..最远我已经得到了404或角色崩溃铬加载无限。

随着上面的代码,我得到的角加载不止一次崩溃。

我只是希望我的角度来加载我的NG-视图内的意见和留下永远的布局..

知道的任何帮助或指针:)

回答

0

我建议你使用的用户界面的路由器,你创建一个从_layout继承的控制器名称'HomeController'。首页的索引视图包含这个div

<div ui-view></div> 

您app.js文件的样子,不要忘了添加UI路由器JS布局

var app = angular.module('app', ['ngRoute', 'ui.router']); 

app.config(['$stateProvider', '$urlRouterProvider', function ($stateProvider, $urlRouterProvider) { 
    // For any unmatched url, redirect to /state1 
    $urlRouterProvider.otherwise("/Home"); 

    // Now set up the states 
    $stateProvider 

     .state('Home', { 
      url: "/Home", 
      controller: "mainController", 
      templateUrl: "your html pages" // like '/script/home/templates/home.html' 
     }).state('About', { 
      url: "/Home/About", 
      controller: "programsCtrl", 
      templateUrl: "your html pages" // like '/script/home/templates/about.html' 
     }); 
}]); 
+0

模块 'ui.router' 不可!您拼错了模块名称或忘记加载模块名称。 - 我复制你的代码,这就是我得到的 –

+0

添加你导入的ui路由器js的模块名称。(它的模块名称在ui-router js中提到),我已经提到你不要忘记添加ui路由器js。 –

+0

你不需要ui.router - 你可以使用'ng-route' – Ric

0

我去,这是由该路将MVC的默认值设置为home/index并将<ng-view></ng-view>置于home/index视图中。这应该是该视图中的唯一内容,删除所有其他内容。

现在,您_layout,请确保您有:

<html ng-app="app">在文件的顶部,并确保您有相关的脚本加载即:

@Scripts.Render("~/bundles/angularjs") @Scripts.Render("~/bundles/app")

这样的角度是可用。

留作@RenderBody()

<div class="body-content"> 
    @RenderBody() 
</div> 

MVC方法返回ActionResultreturn View())和你的ApiController方法返回JSON

+0

它一直说角加载不止一次和崩溃 –

+0

它不应该只是因为那。控制台中是否有其他错误? – Ric