Почему приложение, созданное как webapi, работает, в то время как тот же webapi, добавленный в существующий проект MVC, не будет маршрутизироваться?
Если мое тестовое приложение Web API (созданное как приложение Web API) отлично работает с URL-адреса, то какова может быть причина, по которой точно такой же код, скопированный в прямое приложение MVC, не проходит маршрутизацию? Есть ли что-то существенное, чего не хватает, если я не выбрал WebAPI при создании приложения MVC? Я пытаюсь добавить WebAPI (который извлекает данные из хранимой процедуры SQL Server) в существующее приложение MVC. Я зашел в браузер моделей, убедился и выполнил функцию импорта, чтобы ввести поля, как я это сделал в тестовом приложении.
Я не использую отдельный проект для WebAPI; все это в одном проекте, так что нет никаких проблем с номером порта. Я застрял на этом уже несколько дней. Я удалил и повторно создал модель в приложении MVC много раз. Тестовое приложение и приложение MVC с добавленным веб-API имеют точно такой же APIController и тот же файл WebApiConfig.cs. Когда я ввожу URL-адрес с данными в браузере, он работает в тестовом приложении, давая правильный ответ браузеру, но не в приложении MVC.
Ответ браузеру при использовании приложения MVC выглядит следующим образом:
Ошибка сервера в приложении '/'
Ресурс не может быть найден.
Если у кого-нибудь есть идея, в чем может быть причина, пожалуйста, дайте мне знать. Спасибо.
--------------------------------------------------------------------------
WebApiConfig.в CS
// Маршруты веб-API
конфиг.MapHttpAttributeRoutes();
конфиг.Маршруты.MapHttpRoute(
имя: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
по умолчанию: new { id = RouteParameter.Необязательный }
);
Контроллер
публичный класс CompletedRoundsController : ApiController
{
// ПОЛУЧИТЬ
public IEnumerable<string> Get(int ID, string AsmtType)
{
использование (WebAPIEntities db = новые WebAPIEntities())
{
List<string> R = db.spCurrentRounds(ID, AsmtType).Выберите(x => x.завершено).Список();
возвращение Р;
}
}
Что я уже пробовал:
http://localhost:58398/api/CompletedRounds?ID=1&AsmtType=АВС