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随时:)很高兴我能帮上忙。