将数据从一个Web表单移动到另一个ASP.NET C#

时间:2014-11-21 22:50:58

标签: c# asp.net

我正在尝试按照YouTube上的教程将学生注册中的文本框内容移动到MyProfile表单。但是,当我尝试在我的代码中引用StudentRegitration页面时,我得到了无法找到类型或命名空间的错误。

在教程中我可以看到,在他们的代码中,他们有一个命名空间,但我的网站没有。谁能告诉我该怎么做才能引用StudentRegistration而不会收到错误?

我应该声明我的网站不是网络应用。我发现网站没有默认的命名空间。如何在不引用命名空间的情况下访问StudentRegistration?

public partial class MyProfile : System.Web.UI.Page
{
     protected void Page_Load(object sender, EventArgs e)
     {

       if (PreviousPage != null)
        {
           StudentRegistration LastPage = (StudentRegistration)Context.Handler;

           lblEmail.Text = StudentRegistration.STextBoxEm;
        }
     }
}

2 个答案:

答案 0 :(得分:1)

我不想直接回答您的问题,而是指出您的代码可能会阻止其工作的另一个问题。您应该参考PreviousPage属性的文档:http://msdn.microsoft.com/en-us/library/system.web.ui.page.previouspage%28v=vs.110%29.aspx

NOT 的工作方式如下:

  1. 用户访问/StudentRegistration.aspx
  2. 用户做的事
  3. 用户在/StudentRegistration.aspx
  4. 上提交表单
  5. 服务器将用户重定向到/MyProfile.aspx
  6. MyProfile类知道PreviousPage =来自/StudentRegistration.aspx的类
  7. 相反,上面链接的msdn参考页面中的描述规定PreviousPage属性仅适用于此场景:

    1. 用户访问/StudentRegistration.aspx
    2. 用户做了一些事情
    3. 用户在/StudentRegistration.aspx
    4. 上提交表单
    5. 服务器请求传输到MyProfile类
      • 这并不意味着该网址已更改为/MyProfile.aspx用户,这意味着服务器将当前请求视为/StudentRegistration.aspx ,就好像实际上是请求/MyProfile.aspx
    6. 用户最终会在/StudentRegistration.aspx
    7. 上看到通常为/MyProfile.aspx的结果

      现在,您的代码实际上可能想要这样,但事实上您有:

      if (PreviousPage != null) { StudentRegistration LastPage = (StudentRegistration)Context.Handler; // this should be // StudentRegistration LastPage = (StudentRegistration)PreviousPage; }

      让我觉得你误解了一些有误导性的PreviousPage财产。有关如何在.NET中的多个页面加载中保持状态的示例,我建议您阅读SessionState。它有一个有点复杂的名称,但在这种情况下你会想要更多的东西:

      http://msdn.microsoft.com/en-us/library/ms178581%28v=vs.100%29.aspx

      额外的好处是你不需要从另一个类引用一个类,所以你以后修复当前的bug。此外,即使您确实解决了潜在的命名空间错误,如果您的代码正常工作,我之前概述的问题也会导致文本字段的值为空。

答案 1 :(得分:0)

数据从源发送到目标 - 例如学生注册 - >我的资料

您有选项,因为在一天结束时,它是HTTP。除了“持久性”(Session)和您正在关注的教程之外,“更简单”的方法是使用ButtonPostBackUrl

这意味着您将POST数据发送到目标网页。目标页面(MyProfile)必须验证和解析发布的数据(Request.Form)。这样您就不必管理会话状态。