2015-09-17 210 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