Я пытаюсь настроить веб-api, который будет использовать службы RESTful. Я следую этому руководству.Настройка WebAPI, ответ Fiddler - это html-страница
Getting Started with ASP.NET Web API 2 (C#)
Я также следуя это руководство по настройке Entity Framework.
Getting Started with Entity Framework 6 Code First using MVC 5
Когда я бегу в Скрипач на Composer
. Я получаю веб-страницы для Home.aspx
Вот код для моего контроллера
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Web.Http;
using WebServer.z_Repository;
using WebServer.z_Models;
namespace WebServer.z_Controllers
{
[Route("api/Locations")]
public class LocationsController : ApiController
{
// GET api/<controller>
static IlocationsRepository LocationsRepo;
public LocationsController(IlocationsRepository _repo)
{
if (_repo == null) { throw new ArgumentNullException("_repo"); }
LocationsRepo = _repo;
}
[HttpGet]
public IEnumerable<Location> GetAll()
{
return LocationsRepo.GetAll();
}
}
}
я поставил точку останова на GetAll()
и что точка прерывания никогда не попал. Это говорит мне, что контроллер где-то не зарегистрирован. Но гид ничего не говорит о том, где он должен быть зарегистрирован.
Я создал страницу Global.asax.cs
, хотя этого нет в руководстве. Но я не уверен, куда идти отсюда.
Код для Global.asax.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.SessionState;
namespace WebServer
{
public class Global : System.Web.HttpApplication
{
protected void Application_Start(object sender, EventArgs e)
{
}
protected void Session_Start(object sender, EventArgs e)
{
}
protected void Application_BeginRequest(object sender, EventArgs e)
{
}
}
}
Вот фрагмент, показывающий ответ в Fiddler
Я не уверен, где получить 'GlobalConfiguration', чтобы показать в IntelliSense. Нужен ли мне оператор using в 'Global.cs' –
Вы установили пакеты nuget для WebAPI? Как бы то ни было, если у вас нет 'WebApiConfig.cs', тогда вам нужно его создать. Да, вам понадобится инструкция using в Global 'System.Web.Http'. Вы действительно должны прочитать статью, связанную с ответом. – Nkosi
Сделал все, что вы сказали. Определенно прогресс, но у скрипача появилась ошибка внутреннего сервера 500. Я отмечу это как ответ. –