Веб API зарезервированные слова?

1

"Зарезервированные" слова могут быть не самым лучшим термином здесь, но есть ли что-то, что помешало бы мне назвать веб-контроллер контроллера DocumentationController? Как ни странно, проблема возникает только при работе в Visual Studio (2012). Если я опубликую на локальный сайт IIS, он работает нормально.

Проблема заключается в попытке применить метод Get() по умолчанию на моем DocumentationController, который для целей тестирования выглядит следующим образом:

// GET api/documentation
public HttpResponseMessage Get()
{
   return Request.CreateResponse<string>(HttpStatusCode.OK, "success");
}

При работе в Visual Studio это вернет 302 "перемещение объекта", а затем 404. Но если я переименую контроллер в DocumentationTest или Docs он отлично работает в VS и на локальном сайте IIS.

Я также попробовал, чтобы этот метод просто возвращал string но это не помогло.

Есть ли причина, по которой я не могу (или не должен) называть мой контроллер "DocumentationController"?

Этот ответ (для ASP.NET MVC, по крайней мере) говорит, что единственными зарезервированными словами являются "контроллер", "действие" и "область".

РЕШЕНИЕ:

Там была папка в проекте Web API под названием Documentation. Это по какой-то причине не будет работать при отладке в VS, но отлично работает на IIS. Я просто переименую эту папку.

Теги:
asp.net-web-api
controller

2 ответа

1
Лучший ответ

Там была папка в проекте Web API под названием Documentation. Он был исключен из файла проекта, поэтому он не был виден в Visual Studio, и я не заметил его сразу. По какой-то причине это не сработает при отладке в Visual Studio (папка все еще существует локально), но отлично работает в IIS. Я просто переименую эту папку, чтобы она не конфликтует ни с одним из моих контроллеров.

1

DocumentationController не является резервным словом, а ошибка "перемещенный объект 302" не является ошибкой, указывающей на то, что используется резервное слово. (Я не думаю, что ваше решение будет компилироваться, если вы используете резервное слово). Я предлагаю изучить возможность того, что WebApi.DocumentationController имеет другую ссылку в вашем решении.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню