【发布时间】:2012-02-01 11:47:02
【问题描述】:
为什么即使文本框是空的并且甚至没有触及回发,下面的结果仍然是一个真 if 子句? :
<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");
}
%>
文本框是否在回发时实际上包含一个空字符串 ("")?
为什么以下结果会在第一个页面加载时产生一个真 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");
}
%>
【问题讨论】:
-
在 asp.net 4.5 中禁用自动友好 URL stackoverflow.com/a/40650127/184572