Проблемы, сообщаемые сообщения об ошибке:Использование WebAPI контроллера
«при попытке создать контроллер типа„BooksController“Произошла ошибка Убедитесь, что контроллер имеет без параметров открытого конструктора.. "
Я пытаюсь, чтобы контроллер успешно выполнил и/или вернул значение.
Это проект WebApi с использованием приложения AngularJs в качестве интерфейса. Любые вызовы этого контроллера возвращают ошибку 500 с указанным выше сообщением. Ishould также добавить, что я использую Insight.Database
Я попытался создать новый контроллер и добавление и удаление конструктора. Но я не мог лучше понять, что я делаю неправильно.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Web;
using System.Web.Http;
using System.Data.SqlClient;
using System.Configuration;
using System.Threading.Tasks;
using Insight.Database;
using Owin;
using Microsoft.Owin;
using Microsoft.Owin.Security.OAuth;
using Microsoft.AspNet.Identity;
using Microsoft.AspNet.Identity.Owin;
using Microsoft.SqlServer;
using Wallet.Models.Books;
using Wallet.Models.Stores;
using Wallet.Models.Database;
namespace Wallet.Controllers
{
[Authorize]
[RoutePrefix("api/books")]
public class BooksController : ApiController
{
private IBooksDataAccess access;
public BooksController()
{
access = HttpContext.Current.GetOwinContext().Get<SqlConnection>()
.As<IBooksDataAccess>();
}
// POST api/books/GetActions
[HttpPost]
[Route("GetActions")]
public IList<HistoryAction> ActionsHH([FromBody] Dictionary<string, string> input)
{
var name = input["name"];
var results = access.GetHistoricalActions(name);
return results;
}
// POST api/books/InsertTransaction
[HttpPost]
[Route("InsertTransaction")]
public void InsertTx([FromBody] Dictionary<string, string> input)
{
}
}
}
И вот IBookDataAccess
namespace Wallet.Models.Database
{
[Sql(Schema = "Models")]
public interface IBooksDataAccess
{
IList<HistoryAction> GetHistoricalActions(string UserName);
int InsertTransaction(Dictionary<string, string> transaction);
}
}
Возможно дублирующийся вопрос. То же самое обсуждалось здесь. Http://stackoverflow.com/questions/24014644/make-sure-that-the-controller-has-a-parameterless-public-constructor Вы пытались установить эту ссылку? – Vim
Прошу прощения, я поставил неправильный код. Однако ошибка сохраняется независимо от того, существует или нет конструктор. –
@Vim Я столкнулся с этим во время поиска, но даже после добавления конструктора (пустой или нет) ошибка все еще происходит. –