ASP.Net MVC - Swashbuckle не распознает никаких контроллеров - PullRequest
0 голосов
/ 04 февраля 2019

Я пытаюсь интегрировать Swagger UI в свой проект ASP.Net MVC, используя Swashbuckle, и у меня возникают проблемы с тем, что Swashbuckle не распознает ни один из моих контроллеров / конечных точек.

Для простоты я создал совершенно новый проект содин контроллер, который выглядит следующим образом:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;

namespace TestAPI.Controllers
{
    public class HomeController : Controller
    {
        [Route("Home")]
        [HttpGet]
        public ActionResult Index()
        {
            return View();
        }

        [Route("Home/About")]
        [HttpGet]
        public ActionResult About()
        {
            ViewBag.Message = "Your application description page.";

            return View();
        } 

        [Route("Home/Contact")]
        [HttpGet]
        public ActionResult Contact()
        {
            ViewBag.Message = "Your contact page.";

            return View();
        }
   }
}

Я использовал Nuget, чтобы добавить Swashbuckle, используя следующую команду:

Install-Package Swashbuckle

Я сохранил все настройки по умолчанию для обоих проектов в целом, кака также для самого Swashbuckle (Использование сгенерированного файла SwaggerConfig.cs)

Когда я перехожу к конечной точке Swagger, меня приветствует пустое определение Swagger, и ни один из моих контроллеров / конечных точек не отображается.

Определение пустого сваггера

Я не знаю, как заставить мои контроллеры / конечные точки отображаться.Все демо-версии Swashbuckle создают впечатление, что эта базовая конфигурация по крайней мере заставит отображать конечные точки.

Спасибо!

РЕДАКТИРОВАТЬ: Ниже приведен мой SwaggerConfig.cs

using System.Web.Http;
using WebActivatorEx;
using TestAPI;
using Swashbuckle.Application;

[assembly: PreApplicationStartMethod(typeof(SwaggerConfig), "Register")]

namespace TestAPI
{
    public class SwaggerConfig
    {
        public static void Register()
        {
            var thisAssembly = typeof(SwaggerConfig).Assembly;

            GlobalConfiguration.Configuration
            .EnableSwagger(c =>
            {
                c.SingleApiVersion("v1", "TestAPI");
            })
            .EnableSwaggerUi();
        }
    }
}
...