如何在代码后面的 asp.net 中正确创建 Page 对象。
How to correctly create Page objects in asp.net behind code.
我对 C# 开发还是个新手,对创建对象有疑问。
我在一个网站上工作,我想在提交后在后台代码中提取表单值。最终我试图将页面转换为用户控件。
现在我正在尝试创建一个 Page 对象的实例 (System.Web.UI.Page),这样我就可以访问该对象的请求 属性 并读取提交值。
我的问题是,它总是抛出 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)
{ }
}
}
知道为什么我得到空异常吗?创建 Page 对象以便我可以使用它的 Request 属性 的正确方法是什么?
请告诉我,
谢谢!
在表单标签中使用 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)
{ }
我很惊讶你的代码编译成功了。通常编译器可以检测未初始化的变量。我猜你的例子遗漏了一些东西。
无论如何,要解决您的具体问题,请更改
public System.Web.UI.Page requestVar;
到
public System.Web.UI.Page requestVar = new Page();
也就是说,您不需要 Page 对象。如果您需要访问该请求,您可以使用
获取对它的引用
var request = HttpContext.Current.Request;
var someVariable = request["ParamName"];
我对 C# 开发还是个新手,对创建对象有疑问。
我在一个网站上工作,我想在提交后在后台代码中提取表单值。最终我试图将页面转换为用户控件。
现在我正在尝试创建一个 Page 对象的实例 (System.Web.UI.Page),这样我就可以访问该对象的请求 属性 并读取提交值。
我的问题是,它总是抛出 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)
{ }
}
}
知道为什么我得到空异常吗?创建 Page 对象以便我可以使用它的 Request 属性 的正确方法是什么?
请告诉我, 谢谢!
在表单标签中使用 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)
{ }
我很惊讶你的代码编译成功了。通常编译器可以检测未初始化的变量。我猜你的例子遗漏了一些东西。
无论如何,要解决您的具体问题,请更改
public System.Web.UI.Page requestVar;
到
public System.Web.UI.Page requestVar = new Page();
也就是说,您不需要 Page 对象。如果您需要访问该请求,您可以使用
获取对它的引用var request = HttpContext.Current.Request;
var someVariable = request["ParamName"];