998*_*823 29 c# asp.net asp.net-web-api
我最近开始创建一个ASP.net Web API
出于某种原因,在查看自动生成的帮助文档时,我一直收到此错误:
这是一个POST方法
样本显示适用于application/json和application/xml
我不太确定,但应用程序/ -x-www-form-urlencoded一直出现
我已经搜索了相当多的错误,但无法找到可能导致此问题的原因
我非常感谢您提供的任何帮助,如果您有任何疑问,请告诉我.
Kir*_*lla 21
这是预期的行为.HelpPage样本生成使用HttpConfiguration上的实际格式化程序来"编写"样本对象.FormUrlEncodedMediaTypeFormatter无法"写入"任何类型,因此HelpPage无法为其生成样本.作为一种解决方法,您可以显式提供特定类型的示例(如Areas\HelpPage\App_Start\HelpPageConfig.cs的注释代码中所示).
config.SetSampleForType("[0]=foo&[1]=bar", new MediaTypeHeaderValue("application/x-www-form-urlencoded"), typeof(IEnumerable<string>));
Run Code Online (Sandbox Code Playgroud)
答案帮助了我,但我厌倦了为系统不知道的每种类型编写一个例子......我最终做的是这个
Type[] types = { typeof(MyType), typeof(AnotherType), *add more here* };
foreach(Type t in types)
{
List<string> propExample = new List<string>();
foreach(var p in t.GetProperties())
{
propExample.Add(p.Name + "=value");
}
config.SetSampleForType(string.Join("&", propExample), new MediaTypeHeaderValue("application/x-www-form-urlencoded"), t);
}
Run Code Online (Sandbox Code Playgroud)
有人可以聪明并扩展它,以便根据属性的类型输入默认值,但这对我的目的来说已经足够了.
归档时间: |
|
查看次数: |
15205 次 |
最近记录: |