Как правильно создавать объекты Page в asp.net за кодом.
Я все еще новичок в разработке на 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?
Пожалуйста, дайте мне знать, спасибо!
2 ответа
Использование 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"];