我正在尝试按照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;
}
}
}
答案 0 :(得分:1)
我不想直接回答您的问题,而是指出您的代码可能会阻止其工作的另一个问题。您应该参考PreviousPage
属性的文档:http://msdn.microsoft.com/en-us/library/system.web.ui.page.previouspage%28v=vs.110%29.aspx
NOT 的工作方式如下:
PreviousPage
=来自/StudentRegistration.aspx的类相反,上面链接的msdn参考页面中的描述规定PreviousPage
属性仅适用于此场景:
现在,您的代码实际上可能想要这样,但事实上您有:
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
)。这样您就不必管理会话状态。