swagger ASP.NET MVC - Swashbuckle无法识别任何控制器

bwntbbo3  于 5个月前  发布在  .NET
关注(0)|答案(2)|浏览(94)

我试图使用Swashbuckle将Swagger UI集成到我的ASP.NET MVC项目中,但我遇到了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定义,并且没有显示任何控制器/端点。
Empty Swagger Definition
我不知道如何让我的控制器/端点显示出来。所有的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();
        }
    }
}

41ik7eoe

41ik7eoe1#

这个问题的答案是,Swashbuckle不与ASP.Net MVC一起工作。这是不幸的,但Swashbuckle不是这个问题的适当解决方案。我最终使用反射和XML注解的组合创建了一个自定义解决方案。

l7wslrjt

l7wslrjt2#

“我是来找你的,”他说。
例如:

// POST: Jokes/Create
// To protect from overposting attacks, enable the specific properties you want to bind to.
// For more details, see http://go.microsoft.com/fwlink/?LinkId=317598.
[HttpPost]
[ValidateAntiForgeryToken]
[Authorize]
[Route("[Controller]/[Action]")]
public async Task<IActionResult> Create([Bind("Question,Answer")] Joke joke)
{
    if (ModelState.IsValid)
    {
        _context.Add(joke);
        await _context.SaveChangesAsync();
        return RedirectToAction(nameof(Index));
    }
    return View(joke);
}

字符串

相关问题