【发布时间】:2015-11-27 16:14:55
【问题描述】:
我正在尝试将 ASP.Net 5.0 与 AngularJS 与 Active Directory 集成,但在访问“/api/Account/Ping”时不断收到 404 错误。
ui-router 设置:
app.config(['$stateProvider', '$urlRouterProvider', '$locationProvider',
function ($stateProvider, $urlRouterProvider, $locationProvider) {
$urlRouterProvider.otherwise("/list");
$locationProvider.hashPrefix('!').html5Mode({
enabled: true,
requireBase: false
});
$stateProvider
.state('stateIndex', {
url: '/',
templateUrl: '/templates/list.html',
controller: 'dashListController'
})
.state('stateList', {
url: '/list',
templateUrl: '/templates/list.html',
controller: 'dashListController'
}).state('stateDashboard', {
url: '/dashboard',
templateUrl: '/templates/dashboard.html',
controller: 'dashboardController'
})
.state('stateWidgetsList', {
url: '/widgetsList',
templateUrl: '/templates/widgetsList.html',
controller: 'widgetsListController',
resolve: {
authentication: ['$http', function ($http) {
return $http.get('api/Account/Ping');
}]
}
});
}]);
帐户控制器:
[RoutePrefix("api/Account")]
public class AccountController : ApiController
{
[Authorize]
[HttpGet, Route("Ping")]
public IHttpActionResult Ping()
{
return Ok();
}
}
小部件控制器:
[Route("api/[controller]")]
public class WidgetsController : Controller
{
private readonly PMSContext _dbContext;
public WidgetsController(PMSContext dbContext)
{
_dbContext = dbContext;
}
[Authorize]
[HttpGet]
public IEnumerable<Widget> Get()
{
return _dbContext.Widgets;
}
}
我正在使用拦截器将其路由到登录屏幕。但每次我尝试访问 /widgetsList 时都会收到 404 错误。我在这里错过了什么?
【问题讨论】:
标签: asp.net angularjs asp.net-web-api