加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

ASP.NET:如何重定向,预填充表单数据?

发布时间:2020-12-15 22:32:20 所属栏目:asp.Net 来源:网络整理
导读:我想要一个处理程序重定向到Web表单页面,预先填写表单上的一些控件的值. 我尝试设置我当前的Request.Form数据: if (theyWantToDoSomething){ //pre-fill form values context.Request.Form["TextBox1"] = "test"; context.Request.Form["ComboBox1"] = "tes
我想要一个处理程序重定向到Web表单页面,预先填写表单上的一些控件的值.

我尝试设置我当前的Request.Form数据:

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

但我得到一个例外,Form值是只读的.

什么是将客户端发送到另一个页面的方式,预先填写表单数据?

回答

我使用Session状态来存储值.重要的是要注意,默认情况下,Handler无权访问Session(Session对象将为null).通过将IRequiresSessionState标记接口添加到处理程序类,您可以获得have to tell IIS to give you the Session对象:

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

解决方法

您只能填充响应,请求是输入数据,并且确实是只读的.

如果您使用的是ASP.NET,可以通过多种方式完成所需的操作:

>最好的方法可能是通过Session对象将需要预先填充的数据传递给SomeWebForm.aspx,并在那些页面上使用Load方法填充表单.请记住,当您执行Response.Redirect时,会使用客户端应重定向到的URL向客户端发送302响应.这个过程对用户来说是透明的……但是需要完整的往返行程.>填充用户Session的另一种方法是通过查询字符串将GET参数添加到SomeWebForm.aspx的重定向.>如果您需要将处理传输到SomeWebForm.aspx页面而不进行往返,则可以使用Server.Transfer.这会将执行从当前页面转移到您选择的页面…但是,这可能会导致客户端出现一些奇怪的行为,因为URL不会更新.就用户而言,它仍然看起来好像是在他们开始的同一页面上.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读