C# ASP.NET MVC角路由

C# ASP.NET MVC角路由,c#,angularjs,asp.net-mvc,asp.net-mvc-routing,C#,Angularjs,Asp.net Mvc,Asp.net Mvc Routing,我迷路了 几天来,我一直在努力使它发挥作用。。我先用EF做了一个MVC站点代码。然后我搭建了控制器和API(尝试了很多东西) 我的路线图: routes.MapRoute( name: "Default", url: "{controller}/{action}/{id}", defaults: new { controller = "Events", action = "Index", id = UrlParameter.Opti

我迷路了

几天来,我一直在努力使它发挥作用。。我先用EF做了一个MVC站点代码。然后我搭建了控制器和API(尝试了很多东西)

我的路线图:

        routes.MapRoute(
        name: "Default",
        url: "{controller}/{action}/{id}",
        defaults: new { controller = "Events", action = "Index", id = UrlParameter.Optional }
        );
我的WbApiConfig: config.maphttpAttribute路由()

我的控制器操作应该返回什么?json?观点

我的ng应用程序位于my/Home/Index中(它使用布局,布局在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或角碰撞铬无限加载

通过上面的代码,我得到了不止一次碰撞的角载荷

我只希望我的angular将视图加载到ng视图中,并始终打开布局


欢迎提供任何帮助或指点:)

我建议您使用UI路由器,您可以创建一个从布局继承的控制器名称“HomeController”。主页的索引视图包含此div

  <div ui-view></div>

我的方法是将MVC的默认值设置为
home/index
,并将
放在
home/index
视图中。这应该是该视图中的唯一内容,请删除所有其他内容

现在,在您的
\u布局上
,确保您有:

,并确保已加载相关脚本,即:

@Scripts.Render(“~/bundles/angularjs”)
@Scripts.Render(“~/bundles/app”)

所以这个角度是可用的

将此保存在
@RenderBody()


@RenderBody()

您的
MVC
方法返回
ActionResult
returnview()
)和
ApiController
方法返回
JSON

模块“ui.router”不可用!您要么拼错了模块名称,要么忘记加载。-我复制了您的代码,这是我得到的添加您导入的ui路由器js的模块名。(在ui router js中提到了它的模块名称),我已经提到了你不要忘记添加ui router js。你不需要ui.router-你可以使用
ng route
谢谢你,Ric,你今天过得很好--它一直在说angular loaded不止一次,crashingIt不应该因此崩溃。您的控制台中还有其他错误吗?
  <div ui-view></div>
  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'
        });
}]);
<div class="body-content">
    @RenderBody()
</div>