ASP.NET: Jak przekierować, wypełniając dane formularza?

Chcę, aby program obsługi przekierował do strony formularzy internetowych, wypełniając wstępnie wartości niektórych formantów w formularzu.

Próbowałem ustawić swój prądRequest.Form dane:

<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>

Ale dostaję wyjątekFormularz wartości są tylko do odczytu.

Jaki byłby sposób wysłania klienta na inną stronę, wstępnie wypełniając dane formularza?

Odpowiedź

użyłem stanu sesji do przechowywania wartości. Ważne jest, aby pamiętać, że domyślnie aTreser nie ma dostępu doSesja (Obiekt Session będziezero). tymuszę poinformować IIS, aby dał ci Sesję obiekt przez dodanieIRequiresSessionState interfejs znacznika do klasy obsługi:

<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>

questionAnswers(3)

yourAnswerToTheQuestion