gpt4 book ai didi

c# - ASP.Net MVC - Swashbuckle 无法识别任何 Controller

转载 作者:行者123 更新时间:2023-11-30 17:27:40 24 4
gpt4 key购买 nike

我正在尝试使用 Swashbuckle 将 Swagger UI 集成到我的 ASP.Net MVC 项目中,但我遇到了 Swashbuckle 无法识别我的任何 Controller /端点的问题。

为简单起见,我创建了一个带有单个 Controller 的全新项目,如下所示:

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 定义,并且我的 Controller /端点都没有出现。

Empty Swagger Definition

我不知道如何让我的 Controller /端点出现。所有 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();
}
}
}

最佳答案

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

关于c# - ASP.Net MVC - Swashbuckle 无法识别任何 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54509667/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com