2013-06-24 62 views
1

有沒有辦法可以將FormCollection表格複製到ExpandoObjectFormCollection to expandoObject

我會從第三方公司獲得帖子。其他第三方將使用get,它們都以一個需要動態輸入參數的方法結束。

謝謝!

回答

3

嘛,不是最優雅的代碼(可能是更好的方法來做到這一點),但一種方式可能是這樣的:

[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 
} 

我希望這有助於(至少它可能會給你一個想法) 。

+0

我希望有更優雅的東西。如果沒有人提出類似於一個在線(或兩個)的東西,我會在幾天後接受你的回答。 – Andreas

+0

爲什麼這個foreach?爲什麼不只是:dictionary = collection.AllKeys.ToDictionary(key => key,value => collection [value]); – Andreas

+0

由於字典實際上是expando,所以您需要複製其中的數據,您可以將其轉換回實際的expando。 –