问题标签 [asp.net-web-api-helppages]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
3047 浏览

asp.net-web-api - 向默认路由添加操作时,路由模板分隔符“/”不能连续出现

我有一个通过 OWIN 中间件托管的 Web API 2 项目。一切正常,我可以按预期调用我的 API。但是,我的 WebApiConfig 定义默认路由如下:

因此,我必须使用类似于以下内容的 URL 调用我的 API:/api/values/dosomething

这对我有用,直到我决定记录我的 API。为此,我首先尝试使用不起作用的WebAPI 帮助页面包。然后我想我应该试试Swashbuckle Swagger看看这是否能帮助我完全避免这个问题,但不幸的是,在这两种情况下我都遇到了同样的错误:

路由模板分隔符“/”不能连续出现。它必须由参数或文字值分隔。参数名称:路由模板

尝试了几件事后,结果发现当更改路由模板并删除{action}部分时,错误消失了。但是,我不能真正做到这一点,因为整个项目都假定 URL 中包含操作方法名称。

所以无论如何,我想知道以下内容:

  1. 为什么会发生这种情况?
  2. 有没有办法修改这种行为?

提前致谢!

0 投票
1 回答
441 浏览

c# - 生成帮助页面 webapi2 时出错

尝试使用 MVC5 web api2 生成帮助页面时出现错误,我知道在生成项目时它会为您生成此页面,但是现在尝试单击链接时出现错误

System.StackOverflowException 未处理

错误发生在这一行formatter.WriteToStreamAsync(type, value, ms, content, null).Wait();

这就是它发生的代码。

0 投票
1 回答
27 浏览

asp.net - asp.net 帮助页面不显示正确的路线

我正在使用属性路由来路由控制器中的操作,但 asp.net 生成错误的帮助页面

但结果是在此处输入图像描述

0 投票
2 回答
1290 浏览

asp.net-web-api - ASP.NET Web API 帮助页面上的空模型属性描述

介绍

我已按照本教程设置我的 ASP.NET Web API 帮助页面。

使用<package id="Microsoft.AspNet.WebApi.HelpPage" version="5.2.3" targetFramework="net452" />

文档似乎很好,但我得到了空的模型属性描述

它们在控制器方法/端点和模型详细信息文档中都是空的。

控制器方法示例

模型属性示例

结果

我希望 FirstName 属性摘要能够填充文档上的模型属性描述。相反,描述列是空的: 在此处输入图像描述


有谁知道如何解决这个问题?

0 投票
1 回答
1023 浏览

c# - 如何忽略从路由和操作自动生成的 asp.net web api 帮助页面中的参数

我的动作参数之一是具有 param1、param2、param3 参数的类实例(带有 [FromUri] 属性,我不能用 [FromBody] 替换它)
并且这些参数也在路由中。

当 asp.net web api 帮助页面从操作生成参数时,我在 URI 参数中得到了它们的重复项。
我怎么能忽略其中之一?

0 投票
2 回答
2152 浏览

c# - ApiExplorer 无法识别自定义类型的路由属性

我有一个项目,我想在其中使用自定义类型的路由属性。我将自定义类型作为查询参数的以下代码工作正常,帮助页面显示自定义类型。

WebApi.HelpPage 提供以下文档 Help:Page

如果我更改代码以使用路由属性,结果是我得到一个空的帮助页面。

当我检查我在 HelpController.cs 中观察到的代码时,ApiExplorer.ApiDescriptions 返回一个空的 ApiDescriptions 集合

有什么方法可以让 ApiExplorer 将我的自定义类 IntegerListParameter 识别为属性路由?

0 投票
0 回答
583 浏览

c# - Web API 帮助页面不显示扩展对象的文档

特长;

我有一个从另一个对象延伸的对象。

的每个属性ApiResult都有记录,但没有 的属性ApiResult<T>

文档

为什么扩展对象的文档描述为空白?我希望我<summary>的在这里使用。我怎样才能让它显示出来?


更多细节

这是完整的代码:

这里是我的方法签名:

以防万一,这是我的CardInfo班级:

我的问题是关于 Web API 2 中自动生成的帮助页面。<summary>如果类被扩展,则在帮助页面上被忽略。

0 投票
0 回答
273 浏览

c# - Web API 帮助尝试反序列化 Microsoft Azure AD Graph API 组时出错

当我尝试访问我的 Web API 2 应用程序的帮助区域时,在尝试从 Azure AD Graph API 反序列化组时,HelpPageSampleGenerator 在下面引用的代码最后一行的 WriteSampleObjectsUsingFormatter 方法中引发异常:

其他类(包括具有嵌套类的类)可以很好地反序列化。我挖掘了组的默认对象(方法调用中的“值”),我确实看到了:

由于这都是微软的代码,我不认为这是我在做的任何事情。如果我不需要,我真的宁愿不必编写自己的类来解析到 Graph API,但如果没有其他解决方法,我会这样做。

谢谢!

0 投票
1 回答
213 浏览

c# - 具有来自其他站点的交叉身份验证身份的 Web API 帮助页面

设想

我在 IIS 中有一个带有两个应用程序的站点。

主体("A")是使用 C# 中的 Web API 2 制作的 REST 服务,它包含在带有自动生成的 Help Page 的 Areas 文件夹内("B")
"A"使用标头授权,而不是表单身份验证。此刻"B"没有任何安全感。

第二个应用程序是一个 ("C")带有身份验证表单和登录名的 C# MVC 站点。它有一个文档链接("B")

目标

主要思想是登录"C",单击提供的链接并访问"B"。这里的事情是这样的:如果您尝试直接在"B"不登录的 URL 上输入"C",您会重定向到"C"

实际情况

所以我所做的首先是在"B"文件中HelpController.cs

起初,这适用于本地主机,因为它是我 PC 中的同一个站点。所以我在 DEV 进行了部署,但当然,它没有用。

所以我正在使用这些链接:

跨应用程序的表单身份验证
如何:在 ASP.NET 2.0
machineKey 元素(ASP.NET 设置架构)中配置 MachineKey
MachineKeySection.CompatibilityMode 属性

经过大量工作和加密错误,它只能使用 32 len 密钥。其他配置无效。生成此密钥的代码是:

.NET Fiddler:生成加密的 MachineKey

所以我把这个配置放在“C”上,它就可以了!

但是,在"C"位于 Areas\HelpPage\Views 的 web.config 中,此代码:

但没有用。我的意思是,“A”和“B”网站有效,但System.Web.HttpContext.Current.User.Identity.IsAuthenticated总是错误的

我想我错过或混合了一些东西。我在这一点上迷路了。当我将配置放入“A”Web 配置时,一切都以 500 爆炸,因为我在 REST 服务中没有身份验证表单。

任何提示,评论,答案或问题都将受到重视,同时我仍然为此而战。提前致谢!


更新 1

调试代码,我得到这些值:

0 投票
1 回答
290 浏览

c# - 从 WebAPI C# 中排除 HelpPage

我需要在发布模式下排除我的 api 帮助页面我试图ApiExplorerSettingsAttribute().IgnoreApi = true在 webapi 配置文件中添加但它没有用我们如何实现它?