Wann unterscheiden sich Request.Params und Request.Form?
Frage
Ich bin kürzlich auf ein Problem gestoßen, bei dem ein Wert null war, wenn mit Request.Form darauf zugegriffen wurde, aber in Ordnung war, wenn er mit Request.Params abgerufen wurde.Welche Unterschiede zwischen diesen Methoden können dazu führen?
Lösung
Request.Form umfasst nur über ein Formular gepostete Variablen, während Request.Params sowohl gepostete Formularvariablen als auch als URL-Parameter angegebene Get-Variablen umfasst.
Andere Tipps
Request.Params enthält eine Kombination aus QueryString, Form, Cookies und ServerVariables (in dieser Reihenfolge hinzugefügt).
Der Unterschied besteht darin, dass, wenn Sie eine Formularvariable namens „key1“ haben, die sowohl im QueryString als auch im Formular enthalten ist, Request.Params[„key1“] den QueryString-Wert zurückgibt und Request.Params.GetValues(„key1“) einen zurückgibt Array von [Abfragezeichenfolgewert, Formularwert].
Wenn es mehrere Formularwerte oder Cookies mit demselben Schlüssel gibt, werden diese Werte dem von GetValues zurückgegebenen Array hinzugefügt (d. h.GetValues gibt kein gezacktes Array zurück)
Der Grund dafür war, dass der Wert, den ich abgerufen habe, von einem Formularelement stammte, die Übermittlung jedoch über einen Link + JQuery und nicht über eine Formularschaltfläche „Senden“ erfolgte.