Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/299.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# ASP.Net MVC-Swashback无法识别任何控制器_C#_Asp.net Mvc_Swagger_Swagger Ui_Swashbuckle - Fatal编程技术网

C# ASP.Net MVC-Swashback无法识别任何控制器

C# ASP.Net MVC-Swashback无法识别任何控制器,c#,asp.net-mvc,swagger,swagger-ui,swashbuckle,C#,Asp.net Mvc,Swagger,Swagger Ui,Swashbuckle,我正在尝试使用Swashback将Swagger UI集成到我的ASP.NETMVC项目中,但我遇到了Swashback无法识别任何控制器/端点的问题 为了简单起见,我创建了一个全新的项目,其中包含一个控制器,如下所示: using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; namespace TestAPI.Controllers {

我正在尝试使用Swashback将Swagger UI集成到我的ASP.NETMVC项目中,但我遇到了Swashback无法识别任何控制器/端点的问题

为了简单起见,我创建了一个全新的项目,其中包含一个控制器,如下所示:

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
我保留了整个项目以及Swashback本身的所有默认配置(使用生成的文件SwaggerConfig.cs)

当我导航到招摇过市端点时,我收到一个空的招摇过市定义,并且没有显示我的控制器/端点

我不知道如何让我的控制器/端点显示出来。所有的Swashback演示让人觉得这个基本配置至少会显示端点

谢谢

编辑:下面是我的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();
        }
    }
}

这个问题的答案是Swashback不适用于ASP.NETMVC。不幸的是,虚张声势并不是解决这个问题的合适方法。我最终使用反射和XML注释的组合创建了一个自定义解决方案。

您尝试过这个吗@奈维勒那泽兰这些是我采取的步骤,让事情启动和运行。出于某种原因,Swashback或类似的东西似乎无法识别这些路由。@CharlesBisbee您使用的是.NET MVC的哪个版本?@TiagoBrenck我使用的是.NET MVC 5您是否尝试关闭它,然后再打开它?