C# ASP.NET MVC角路由
我迷路了 几天来,我一直在努力使它发挥作用。。我先用EF做了一个MVC站点代码。然后我搭建了控制器和API(尝试了很多东西) 我的路线图: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
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>