asp.net-mvc在post操作中获取词典或如何将FormCollection转换为词典

asp.net-mvc在post操作中获取词典或如何将FormCollection转换为词典,asp.net-mvc,formcollection,Asp.net Mvc,Formcollection,有人知道如何将FormCollection转换为IDictionary或如何在post操作中获得IDictionary?我是这样做的: var form = new Dictionary<string, string>(); foreach (var key in formCollection.AllKeys) { var value = formCollection[key];

有人知道如何将
FormCollection
转换为
IDictionary
或如何在post操作中获得
IDictionary

我是这样做的:

            var form = new Dictionary<string, string>();
            foreach (var key in formCollection.AllKeys)
            {
                var value = formCollection[key];
                form.Add(key, value);
            }
var form=newdictionary();
foreach(formCollection.AllKeys中的var键)
{
var值=formCollection[键];
形式。添加(键、值);
}

这只是Omnu的代码的等价物,但在我看来更优雅:

Dictionary<string, string> form = formCollection.AllKeys.ToDictionary(k => k, v => formCollection[v]);
Dictionary form=formCollection.AllKeys.ToDictionary(k=>k,v=>formCollection[v]);
公共静态IDictionary GetFormParameters(FormCollection集合)
{
IDictionary formParameters=新字典();
foreach(collection.AllKeys中的var键)
{
如果(key==null)继续;
var value=collection.GetValues(键);
//value=CrossSiteAttackUtil.CleanHtml(值);
if(值!=null)
{
formParameters.Add(键、值);
}
}

在.Net Core上,这个对我很有用

var collection = Request.Form.Keys.ToDictionary(k => k, v => Request.Form[v].ToString());

我认为这是风格的问题,我个人认为Omu的代码有点冗长,但更容易看到发生了什么。更喜欢这个解决方案,更整洁
var collection = Request.Form.Keys.ToDictionary(k => k, v => Request.Form[v].ToString());