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>