如何在asp.net字典中存储所有表单发布的数据

时间:2011-01-18 10:56:01

标签: c#

我使用c#作为代码。

我的表格提交时有很多价值,下面是其中几个:

skywardsNumber  99999039t
password    a2222222
ctl00$MainContent$ctl22$FlightSchedules1$ddlDepartureAirport-suggest    Alice Springs (ASP)
ctl00$MainContent$ctl22$ctl07$txtPromoCode  ManojPromo

现在我想将所有FORM发布的值存储在asp.net字典中,然后该字典对象将保存在 SESSIONS 中以供进一步使用。

请建议如何在 asp.net DICTIONARY 中存储 FORM POSTED 值。

3 个答案:

答案 0 :(得分:4)

尝试这种方法:

using System.Linq;
using System.Collections;
using System.Collections.Generic;
...

Dictionary<string, string> form = new Dictionary<string, string>(from key in Request.Form.AllKeys select new DictionaryEntry(key, Request.Form[key]));
Session["MyKey"] = form;

<强>更新

没有LINQ:

Dictionary<string, string> form = new Dictionary<string, string>();
foreach(string key in Request.Form.AllKeys)
    form.Add(key, Request.Form[key]);
Session["MyKey"] = form;

答案 1 :(得分:0)

您应该可以执行以下操作。

Request["varaibleName"];

或循环

 foreach ( string var in Request.Form ) {
     Response.Write ( Request.Form[ var ] );
 }

答案 2 :(得分:0)

您可以创建一个实现IDictionary的类:

public class RequestDictionary : IDictionary<string, string>
{


    private HttpRequest request;
    public RequestDictionary(HttpRequest request)
    {
        this.request = request;
    }


    public string this[string key] {
        get { return request(key); }
        set {
            throw new NotImplementedException();
        }
    }

    // ...

}

然后,您可以根据请求创建RequestDictionary对象,并将其用作字典,而无需在新字典中复制所有值。