0

我对 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)
    { }
}

}

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

请告知,谢谢!

4

2 回答 2

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)
{ }
于 2016-11-29T20:07:42.760 回答
-1

我很惊讶您的代码已编译。通常编译器可以检测到未初始化的变量。我猜你的例子遗漏了一些东西。

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

public System.Web.UI.Page requestVar;

public System.Web.UI.Page requestVar = new Page();

话虽如此,您不需要 Page 对象。如果您需要访问请求,您可以使用

var request = HttpContext.Current.Request;
var someVariable = request["ParamName"];
于 2016-11-29T20:43:31.860 回答