Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/313.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# FormCollection以展开对象_C#_Asp.net Mvc - Fatal编程技术网

C# FormCollection以展开对象

C# FormCollection以展开对象,c#,asp.net-mvc,C#,Asp.net Mvc,有没有办法将表单集合表单复制到扩展对象 我将从第三方公司得到一个职位。其他第三方将使用get,它们最终都会得到一个采用动态输入参数的方法 谢谢 嗯,这不是最优雅的代码(可能是更好的方法),但有一种方法可能是这样的: [HttpPost] public ActionResult Test(FormCollection collection) { dynamic expando = new ExpandoObject(); var dictionary = (IDictionary&

有没有办法将
表单集合
表单复制到
扩展对象

我将从第三方公司得到一个职位。其他第三方将使用get,它们最终都会得到一个采用动态输入参数的方法


谢谢

嗯,这不是最优雅的代码(可能是更好的方法),但有一种方法可能是这样的:

[HttpPost]
public ActionResult Test(FormCollection collection)
{
    dynamic expando = new ExpandoObject();
    var dictionary = (IDictionary<string, object>) expando;

    foreach (var item in collection.AllKeys.ToDictionary(key => key, value => collection[value]))
    {
        dictionary.Add(item.Key, item.Value);
    }
    // your expando will be populated here ...
    // do awesomeness
}
[HttpPost]
公共行动结果测试(FormCollection集合)
{
动态expando=新的ExpandoObject();
变量字典=(IDictionary)expando;
foreach(collection.AllKeys.ToDictionary(key=>key,value=>collection[value])中的var项)
{
dictionary.Add(item.Key、item.Value);
}
//您的expando将在此处填充。。。
//令人敬畏
}

我希望这有帮助(至少它可能会给你一个想法)。

好吧,这不是最优雅的代码(可能是更好的方法),但有一种方法可能是这样的:

[HttpPost]
public ActionResult Test(FormCollection collection)
{
    dynamic expando = new ExpandoObject();
    var dictionary = (IDictionary<string, object>) expando;

    foreach (var item in collection.AllKeys.ToDictionary(key => key, value => collection[value]))
    {
        dictionary.Add(item.Key, item.Value);
    }
    // your expando will be populated here ...
    // do awesomeness
}
[HttpPost]
公共行动结果测试(FormCollection集合)
{
动态expando=新的ExpandoObject();
变量字典=(IDictionary)expando;
foreach(collection.AllKeys.ToDictionary(key=>key,value=>collection[value])中的var项)
{
dictionary.Add(item.Key、item.Value);
}
//您的expando将在此处填充。。。
//令人敬畏
}

我希望这会有所帮助(至少它可能会给你一个想法)。

我希望有更优雅的东西。我会在几天内接受你的回答,如果没有人能想出一个或两个这样的答案,为什么是foreach?为什么不只是:dictionary=collection.AllKeys.ToDictionary(key=>key,value=>collection[value]);因为字典实际上是expando,所以您需要复制其中的数据,您可以将其强制转换回实际的expando。@user1711409您可以将其隐藏在扩展方法(
ToExpando()
或其他东西)中,但不能将字典强制转换回
ExpandoObject
。老实说,我希望我说的有道理,我不擅长解释:)@user1711409随时:)很高兴我能帮上忙。我希望有更优雅的东西。我会在几天内接受你的回答,如果没有人能想出一个或两个这样的答案,为什么是foreach?为什么不只是:dictionary=collection.AllKeys.ToDictionary(key=>key,value=>collection[value]);因为字典实际上是expando,所以您需要复制其中的数据,您可以将其强制转换回实际的expando。@user1711409您可以将其隐藏在扩展方法(
ToExpando()
或其他东西)中,但不能将字典强制转换回
ExpandoObject
。老实说,我希望我说的有道理,我不擅长解释:)@user1711409随时:)很高兴我能帮上忙。