Как пройти через Request.Form, не зная никаких деталей?
Я хочу выложить все в Request.Form, чтобы я мог просто вернуть его в виде строки и посмотреть, с чем я имею дело. Я попытался настроить цикл for...
// Order/Process
// this action is the submit POST from the pricing options selection page
// it consumes the pricing options, creates a new order in the database,
// and passes the user off to the Edit view for payment information collection
[AcceptVerbs(HttpVerbs.Post)]
public string Process()
{
string posted = "";
for(int n = 0;n < Request.Form.Count;n++)
posted += Request.Form[n].ToString();
return posted;
}
Но все, что я когда-либо получаю, это "12", и я знаю, что в форме гораздо больше вещей, чем это...
4 ответа
Решение
StringBuilder s = new StringBuilder();
foreach (string key in Request.Form.Keys)
{
s.AppendLine(key + ": " + Request.Form[key]);
}
string formData = s.ToString();
foreach(string key in Request.Form.Keys)
{
posted += Request.Form[key].ToString();
}
Оооо Я понял мою проблему, в моей форме единственное значение, которое я продолжаю возвращать, это от единственного элемента управления вводом, который имеет ИМЯ. Теперь, когда я даю им имена, это работает.
foreach(KeyValuePair<string, string> kvp in Request.Form){
posted += kvp.Key + ":" + kvp.Value + "\n";
}
Редактировать: Ох. Видимо, вам нужно взломать NameValueCollection, чтобы заставить его сделать это. Так что это плохой способ перебора коллекции.