Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.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中获取它们_C#_Asp.net_Json_Asp.net Mvc_Controller - Fatal编程技术网

从请求负载中提取所有数据,以在控制器参数C#Asp Net mvc中获取它们

从请求负载中提取所有数据,以在控制器参数C#Asp Net mvc中获取它们,c#,asp.net,json,asp.net-mvc,controller,C#,Asp.net,Json,Asp.net Mvc,Controller,有一个问题。我可以调整控制器操作以接收控制器参数中的所有数据(包括对象中的属性) 我的意思是 我已将此信息发送至: {exportInfo: {collectionId: 428713, id: "59f9d640fcbfc5540c015f39"}, format: "CSV"} 总共有3个属性:collectionId、id、format。我不将“exportInfo”计算为属性,因为我希望从中提取内部属性 我在服务器上有一个操作 public void action (int colle

有一个问题。我可以调整控制器操作以接收控制器参数中的所有数据(包括对象中的属性)

我的意思是 我已将此信息发送至:

{exportInfo: {collectionId: 428713, id: "59f9d640fcbfc5540c015f39"}, format: "CSV"}
总共有3个属性:collectionId、id、format。我不将“exportInfo”计算为属性,因为我希望从中提取内部属性

我在服务器上有一个操作

public void action (int collectionId, string id, FileFormat format) 
{ //FileFormat is enum
   ...
}
我知道我可以创建一个具有“collectionId”和“id”属性的类,并在操作声明中使用它。但也许还有别的办法? 我正在发送邮寄请求
我使用的是ASP Net MVC 5

我的猜测是,您的数据很可能会发生变化,但出于某种原因,您仍然希望获取该数据,但此时此刻您不知道它会是什么样子。 然后您可以尝试使用对象

例如:

//Input: {"val":42}

    [HttpPost]
    public dynamic PostDynamic(dynamic value)
    {
        return value.val;
    }
返回42

但是,与往常一样,在编写此类代码时必须非常精确,因为访问动态对象中未定义的字段将导致接收null。 例如

如果
对象中没有
hello
字段,则将返回null

在C#中使用动态类型有几种方法


之后,我建议您看看,它肯定会提高您对ASP.NET中模型绑定的理解

第一个标签是使用web api和MVC以及Core的.net版本。我从您的数据中假设此操作是一个Post而不是Get,但如果您指定了它也会很好。最后要回答您的问题,是的,您不需要类,但如果您将文件格式化为字符串,可能会更容易,因为web api很难从复杂类中获取多个参数,假设您没有多个复杂类,但是它与binderjohnny 5模型有一些细微差别,我忘了说FileFormat是一个枚举,不是一个类谢谢,但这不是我的意思。我有确切的数据集,我已经描述过了。我想让这个参数起作用,但不创建新的类,行中只有3个参数。请提供有效的链接好吗?我没有通过单击访问该网站it@simplygood哦,我明白了:你想把多个参数传递到你的API方法中。本机WebApi不支持这样的功能,请看下面这篇文章,解释您可以做些什么。
    [HttpPost]
    public dynamic PostDynamic(dynamic value)
    {
        return value.hello;
    }