2015-04-12 76 views
0

我正在尝试使用ASP.NET创建Angular SPA应用程序。尝试访问ASP.NET中的控制器方法时获取System.TypeLoadException

当我运行服务器时,它会加载一切正常,我的JavaScript,CSS和第一个索引页。

当我尝试使用ApiController时出现问题。

这里是我的控制器:

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Web.Mvc; 
using System.Web.Mvc.Ajax; 
using System.Net; 
using System.Net.Http; 
using System.Collections; 
using System.Web.Http; 
using Angular2.DAL; 
using Angular2.Models; 

namespace Angular2.Controllers { 
    public class HomeController : ApiController { 

     private ItemServiceContext db = new ItemServiceContext(); 

     // GET: api/Home 
     public IEnumerable<Item> Get() 
     { 
      IEnumerable<Item> currentUserToDos = db.Items; 
      return currentUserToDos; 
     } 
    } 
} 

这里是我的角度服务:

angular.module('myApp') 
.factory('itemSvc', ['$http', function ($http) { 
    return { 
     getItems : function(){ 
      return $http.get('/api/Home'); 
     }, 
     getItem : function(id){ 
      return $http.get('/api/Home/' + id); 
     }, 
     postItem : function(item){ 
      return $http.post('/api/Home/',item); 
     }, 
     putItem : function(item){ 
      return $http.put('/api/Home/', item); 
     }, 
     deleteItem : function(id){ 
      return $http({ 
       method: 'DELETE', 
       url: '/api/Home/' + id 
      }); 
     } 
    }; 
}]); 

这里是我的WebApiConfig:

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web.Http; 


namespace Angular2 { 
    public class WebApiConfig { 
     public static void Register(HttpConfiguration config) 
     { 
      // Web API configuration and services 

      // Web API routes 
      config.MapHttpAttributeRoutes(); 

      config.Routes.MapHttpRoute(
       name: "DefaultApi", 
       routeTemplate: "api/{controller}/{id}", 
       defaults: new { id = RouteParameter.Optional } 
      ); 
     } 

}}

现在,当我试图做一个

itemSvc.getItems().success(function (result) { 
      $scope.items = result; 
      console.log(result); 
     }).error(function (err) { 
      $scope.error = err; 
     }) 

在我的控制器,在索引页面加载,我得到这个错误:

enter image description here

究竟我做错了的是什么?我的web.config文件可能有问题吗?我在Linux上使用monodevelop 5.7来完成这个项目。 如果需要,将提供更多信息。

回答

1

this answer看起来像一个框架错误,虽然bug tracker争辩说这是一个错误,并且似乎说Web API二进制文件不受支持。

+0

对此的任何解决方法? – Kaspar

+1

您可以尝试克隆Web API源代码并在Mono中进行编译,但我从未使用Mono,因此我不知道如何去做。我发现[这篇文章](http://blog.oxfordcc.co.uk/aspnet-web-api-on-linux-apache-with-mono/),这使它看起来...不平凡。 –

+0

我想我会给它一个镜头......:D谢谢! – Kaspar