我仍然不熟悉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属性?
请告诉我, 谢谢!
答案 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}}