When is Request. Form["name"] null, а когда пустая строка?

Почему приведенная ниже формула true if, даже если textbox пуст и даже не тронут при возврате? :

<form action="Default.aspx" runat="server" method="post" id="newform">
<input type="text" id="name" runat="server"/>
</form>

<%
if (Request.Form["name"] != null) // Prints out "Name OK" on postback.
{
    Response.Write("<br/>");
    Response.Write("Name OK");
}
%>

Действительно ли textbox содержит пустую строку ("") при возврате?


Почему приведенная ниже формула true if при первой загрузке страницы, но не при возврате? :

<form action="Default.aspx" runat="server" method="post" id="newform">
<input type="text" id="name" runat="server"/>
</form>

<%
if (Request.Form["name"] != "") // Prints out "Name OK" on first page load, but not on postback.
{
    Response.Write("<br/>");
    Response.Write("Name OK");
}
%>

Чтобы получить успешный и ожидаемый результат, я должен использовать следующее:

<form action="Default.aspx" runat="server" method="post" id="newform">
<input type="text" id="name" runat="server"/>
</form>

<%
if (Request.Form["name"] != null && Request.Form["name"] != "")
{
    Response.Write("<br/>");
    Response.Write("Name OK");
}
%>
6
задан Heinzi 3 January 2012 в 14:25
поделиться