Angp路由与Asp.net mvc区域和cshtml无法正常工作

时间:2017-03-20 08:42:29

标签: angularjs asp.net-mvc

我的layout.cshtml包含:

{
    // GET: Admin/Default
    BMS2Entities _db = new BMS2Entities();
    public ActionResult Index()
    {
        var emp = _db.AspNetUsers.ToList();
        return Json(emp, JsonRequestBehavior.AllowGet);
    }

这是我的控制者:

enter image description here

及其行动方法:

public class UserController:Controller

$http({ method: 'Get', url: 'Areas/Admin/User/Index' })
            .then(function (response) {
                $scope.depts = response.data;
            });

在index.cshtml和index.js文件里面:

enter image description here

index.js包含对admin区域内的usercontroller的服务器调用:

app.controller('userController',function($ scope,$ http){

$routeProvider.when('/User', {
    templateUrl: 'Areas/Admin/Views/User/Index.cshtml',
    controller: 'userController'
});

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

});

最后是用于路由的myapp.js文件:

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

app.config(function($ routeProvider){

<spring:beans xmlns="http://membrane-soa.org/proxies/1/"
xmlns:spring="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.2.xsd 

});

但代码不起作用,它不显示cshtml和节目 <{3}}在浏览器中。

2 个答案:

答案 0 :(得分:1)

$ routeProvider.when('/ User',{     templateUrl:'Areas / Admin / Views / User / Index.cshtml',     controller:'userController' });

在调用控制器的操作时,您需要在templateUrl中添加前缀路径并使用相同的内容。

答案 1 :(得分:0)

您是否在layout.cshtml中编写了ng-app指令? 我认为标签的语法应该像

<a href="/#/User">User</a> 

希望这有帮助!