尝试访问ASP.NET中的控制器方法时获取System.TypeLoadException

时间:2015-04-12 17:27:00

标签: c# asp.net angularjs

我正在尝试使用ASP.NET创建一个Angular SPA应用程序。

当我运行服务器时,它会加载所有内容,我的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 个答案:

答案 0 :(得分:1)

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