asp.net – 什么时候Request.Form [“name”]为null并且当一个空
为什么以下结果都是真正的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"); } %> 文本框实际上是否在回发中包含空字符串(“”)? 为什么以下结果导致第一页上的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"); } %> 解决方法
首先,让我回答你的问题:
第一页加载是GET,回发是POST(因此名称为postback).仅当通过表单POST加载页面时,才会填充Request.Form. >在第一页加载时,Request.Form是一个空集合.由于Request.Form是一个NameValueCollection,accessing a non-existent entry returns null.因此,Request.Form [“whatever”]在第一页加载时返回null. 如果你想避免x!= null&& x!=“”pattern,使用String.IsNullOrEmpty或null coalescing operator:(x ??“”)!=“”. 另一方面,通过使用内置的WebForms功能而不是自己解析Request.Form,您可以使您的生活更轻松: <form runat="server"> <asp:TextBox ID="nameBox" runat="server" /> <asp:Button Text="Do Postback" runat="server" /> </form> <% if (nameBox.Text != "") { %><br />Name OK<% } %> 由于TextBox.Text默认为“”,因此无需在此处检查null. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net – 客户端确认后DropdownList autoposback
- asp.net-mvc – ASP.NET MVC中UpdateModel的正确行为是什么
- ASP.NET MVC 4软件包在mono v3下不工作
- ASP.NET Core 1 RC2 Web应用入门点
- asp.net-mvc – Json返回时如何读取modelstate错误?
- asp.net-mvc – ASP.NET MVC:如果视图有错误,如何发出编译
- asp.net-mvc – 同步ASP.NET MVC回发回调的问题
- asp.net-core – 使用asp.net核心进行Windows身份验证
- asp.net – 为什么在设置@Page masterPageFIle时不暗示@Mas
- asp.net – 如何防止网页上的CSS缓存?
- asp.net – 无法识别的配置部分log4net. web.con
- asp.net-mvc – 在另一个文件夹中捆绑的Javascri
- asp.net – asp图表错误
- 经典ASP(VBScript)替换字符串中的特殊字符表现得
- asp.net – 无法将HttpHandler映射到“路径/ *”
- 在ASP.NET MVC 3中上载大于2GB的文件
- asp.net-mvc-3 – 将WebForms中的MVC3与大型现有
- asp.net-mvc-4 – 全局过滤器MVC 4的执行顺序是什
- ASP.NET MVC Controller FileContent ActionResu
- 在asp.net应用程序中启用c#7