Asp.net 在ASPNET WebApi和json请求中使用动态参数时的奇怪行为
我真的没有很好的解释到底发生了什么,我希望这里有人能解释这种行为 首先,我创建File=>NewProject=>emptyWebAPI项目 然后我添加了一个简单的控制器,并将其托管在IIS上Asp.net 在ASPNET WebApi和json请求中使用动态参数时的奇怪行为,asp.net,asp.net-web-api,Asp.net,Asp.net Web Api,我真的没有很好的解释到底发生了什么,我希望这里有人能解释这种行为 首先,我创建File=>NewProject=>emptyWebAPI项目 然后我添加了一个简单的控制器,并将其托管在IIS上 [RoutePrefix(“api”)] 公共类AccountController:ApicController { [HttpPost,路线(“账户”)] 公共异步任务发布(动态命令) { 动态asd=命令; 返回Ok(); } } 然后我用fiddler点击API,如下所示: POST https:/
[RoutePrefix(“api”)]
公共类AccountController:ApicController
{
[HttpPost,路线(“账户”)]
公共异步任务发布(动态命令)
{
动态asd=命令;
返回Ok();
}
}
然后我用fiddler点击API,如下所示:
POST https://local.com/api/account HTTP/1.1
Content-Type: application/json
{"username":"user1","password":"secret","email":"email@domain.com"}
然后,我在控制器内放置一个断点,并使用即时窗口
command.email
“对象”不包含“电子邮件”的定义,并且找不到接受“对象”类型的第一个参数的扩展方法“电子邮件”(是否缺少using指令或程序集引用?
但是使用asd
实际上是可行的。怎么样?有什么想法吗
asd.email
{email@domain.com}
基数:{email@domain.com}
HasValues:false
类型:字符串
值:“email@domain.com“
甚至更多。如果我将dynamic更改为ExpandoObject,我会得到下面的结果,这是我实际期望的结果,但是通过asd
:
asd.email
"email@domain.com“