ASP.NET: Wie leite ich Formulardaten um, bevor ich sie fülle?

Ich möchte, dass ein Handler zu einer Webformularseite umleitet und die Werte einiger Steuerelemente im Formular vorab eingibt.

Ich habe versucht, meinen Strom einzustellenAnfrage.Formular Daten:

<code>if (theyWantToDoSomething)
{
   //pre-fill form values
   context.Request.Form["TextBox1"] = "test";
   context.Request.Form["ComboBox1"] = "test 2";
   context.Request.Form["TextBox2"] = GetTheTextForTheThing();

   //tell the client to go there
   context.Response.Redirect("~/SomeWebForm.aspx");
   return;        
}
</code>

Aber ich bekomme eine AusnahmeBilden Werte sind schreibgeschützt.

Was wäre eine Möglichkeit, den Kunden auf eine andere Seite zu schicken und die Formulardaten vorab auszufüllen?

Antworten

Ich habe den Sitzungsstatus zum Speichern von Werten verwendet. Es ist wichtig zu beachten, dass standardmäßig aHandler hat keinen Zugriff aufSession (Das Session - Objekt wirdNull). SieIch muss IIS bitten, Ihnen die Sitzung zu geben Objekt durch Hinzufügen derIRequiresSessionState Marker-Schnittstelle zu Ihrer Handler-Klasse:

<code>public class Handler : IHttpHandler, System.Web.SessionState.IRequiresSessionState
{
   public void ProcessRequest(HttpContext context)
   {
      ...
      if (theyWantToDoSomething)
      {
         //pre-fill form values
         context.Session["thing1"] = "test";
         context.Session["thing2"] = "test 2";
         context.Session["thing3"] = GetTheTextForTheThing();

         //tell the client to go there
         context.Response.Redirect("~/SomeWebForm.aspx");
         return; //not strictly needed, since Redirect ends processing
      }
      ...
   }
}
</code>

Antworten auf die Frage(3)

Ihre Antwort auf die Frage