Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/272.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将数据从一个web表单移动到另一个ASP.NET C#_C#_Asp.net - Fatal编程技术网

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

将数据从一个web表单移动到另一个ASP.NET C#,c#,asp.net,C#,Asp.net,我正试图通过遵循YouTube上的教程,将StudentRegistration上的文本框内容移动到MyProfile表单。但是,当我尝试在代码中引用studentRegistration页面时,我得到一个错误,即找不到类型或命名空间 在教程中,我可以看到他们的代码中有一个名称空间,但我的网站没有。有谁能告诉我怎样做才能在不出错的情况下引用StudentRegistration 我应该声明我有一个网站,而不是一个网络应用程序。我发现网站没有默认名称空间。我如何访问StudentRegistrat

我正试图通过遵循YouTube上的教程,将StudentRegistration上的文本框内容移动到MyProfile表单。但是,当我尝试在代码中引用studentRegistration页面时,我得到一个错误,即找不到类型或命名空间

在教程中,我可以看到他们的代码中有一个名称空间,但我的网站没有。有谁能告诉我怎样做才能在不出错的情况下引用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;
        }
     }
}

我不想直接回答您的问题,而是想指出代码中的另一个问题,它可能会阻止它工作。您应该参考
上一页
属性中的文档,网址为:

它不会像这样工作:

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

  • 用户访问/StudentRegistration.aspx
  • 用户做了一些事情
  • 用户在/StudentRegistration.aspx上提交表单
  • 服务器将请求传输到MyProfile类
    • 这并不意味着用户的url已更改为/MyProfile.aspx,这意味着服务器将把当前对/StudentRegistration.aspx的请求视为对/MyProfile.aspx的请求
  • 用户最终看到的结果通常是/StudentRegistration.aspx上的/MyProfile.aspx
  • 现在,您的代码可能确实需要这样做,但事实是:

    
    如果(上一页!=null)
    {
    StudentRegistration LastPage=(StudentRegistration)Context.Handler;
    //这应该是
    //StudentRegistration LastPage=(StudentRegistration)PreviousPage;
    }
    

    让我觉得您误解了有点误导性的
    PreviousPage
    属性。对于如何在.NET中跨多个页面加载保持状态的示例,我建议阅读SessionState。它的名称有点复杂,但在这种情况下,它的功能更多:

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

    您正在将数据从源发送到目标-例如StudentRegistration->MyProfile

    你可以选择,因为在一天结束时,它是HTTP。除了“持久性”(会话)和您正在学习的教程之外,还有一种“更简单”的方法


    这意味着您正在
    将数据发布到目标页面。目标页面(MyProfile)必须验证和解析发布的数据(
    Request.Form
    )。这样,您就不必管理会话状态之类的事情。

    这是引用的问题。您没有对StudentRegistration类的引用。用Using语句添加对它的引用,或者写出整个东西,比如.studentregistrationsanks。我是编程新手,我认为我的项目实际上没有名称空间。有没有一种方法可以创建一个?如果我使用StudentRegistration键入,我会得到一个错误,即当前上下文中不存在该名称。如果使用C,则类应始终具有名称空间。因此,如果您的项目名称是“注册”,那么您的命名空间就是注册。您的类被引用为Registration.StudentRegistration。您正在使用Visual Studio吗?通常C#中类的结构是namespace{classname{},我应该声明我正在一个网站上工作。该类的结构为公共部分类MyProfile:System.Web.UI.Pageit’如果您在网站上工作,则该类仍然是类,并且该特定类是页面背后的代码。