如何在代码中的asp.net中正确创建页面对象。

时间:2016-11-29 20:04:06

标签: c# asp.net object system.web.ui.webcontrols

我仍然不熟悉C#开发,并对创建对象有疑问。

我正在网站上工作,我希望在提交后在后面的代码中提取表单值。最终我试图将页面转换为用户控件。

现在我正在尝试创建一个Page对象的实例(System.Web.UI.Page),这样我就可以访问该对象的Request属性并读取提交值。

我的问题是,它总是抛出NullReferenceException并且没有读取提交的值

这是我的代码:

<form id="myForm" runat="server" > 
Name: <input type="text" name="name" id="name" /> 
<input type="submit" value="Submit Name" /> 
</form>


public partial class testing1 : BasePage
{
// Created an instance of Page Object
public System.Web.UI.Page requestVar;

protected void Page_Load(object sender, EventArgs e)
{
    try
    {
        // Try and use request, throws null exception
        string holder = requestVar.Request["name"];
    }
    catch (NullReferenceException)
    { }
}

}

知道为什么我会得到null异常吗?创建Page对象的正确方法是什么,以便我可以使用它的Request属性?

请告诉我, 谢谢!

2 个答案:

答案 0 :(得分:1)

在表单标记中使用method="POST"

<form id="myForm" runat="server" method="POST" > 
    Name: <input type="text" name="name" id="name" /> 
          <input type="submit" value="Submit Name" /> 
</form>

并在代码中使用Request.Form["name"]

try
{
    string holder = Request.Form["name"];
}
catch (Exception ex)
{ }

答案 1 :(得分:-1)

我对你的代码编译感到惊讶。通常,编译器可以检测未初始化的变量。我猜你的例子留下了一些东西。

无论如何,要解决您的具体问题,请更改

var request = HttpContext.Current.Request;
var someVariable = request["ParamName"];

{{1}}

话虽这么说,你不需要一个Page对象。如果您需要访问该请求,可以使用

获取对它的引用
{{1}}