use*_*032 1 c# asp.net validation requiredfieldvalidator
我正在使用asp.net验证,如必填字段验证器等.我想知道是否足够把这些验证器或后端的东西也应该完成?我的意思是它工作得很好,但我曾经听说验证也应该在后端等完成,因为客户端验证可以关闭,这将导致应用程序崩溃?这是真的吗?
例如
<asp:TextBox ID="txtFrom" runat="server"></asp:TextBox>
<asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server"
ControlToValidate="txtFrom" Display="None" ErrorMessage=""
ForeColor="Red" >
</asp:RequiredFieldValidator>
To :
<asp:CalendarExtender ID="Calender" Format="dd/MMM/yyyy" runat="server" TargetControlID ="txtFrom"></asp:CalendarExtender>
<asp:TextBox ID="txtTo" runat="server"></asp:TextBox>
<asp:CalendarExtender ID="CalendarExtender1" Format="dd/MMM/yyyy" runat="server" TargetControlID ="txtTo"></asp:CalendarExtender>
<asp:RequiredFieldValidator ID="RequiredFieldValisdator9" runat="server"
ControlToValidate="txtTo" Display="None" ErrorMessage=""
ForeColor="Red" >
</asp:RequiredFieldValidator>
Run Code Online (Sandbox Code Playgroud)
伙计们,感谢您的回复,我试图验证提交按钮上的页面,像这样,是否正确?
protected void btnGenReport_Click(object sender,EventArgs e){//此事件生成特定日期之间投诉的报告.
try
{
//my report binding code
}
catch (Exception ex)
{
Response.Write(ex.Message.ToString());
}
Page.Validate();
if (Page.IsValid)
{
txtFrom.Text = "Validated";
}
else
{
txtFrom.Text = "NOT VALIDATED";
}
}
Run Code Online (Sandbox Code Playgroud)
如果客户端上没有javascript(不太可能,但可能),您最终可能会关闭验证.此外,有人可以尝试通过将数据直接发布到您的网站来规避您的支票.
对于这些情况,您始终需要服务器端验证.
根据MSDN:验证ASP.NET服务器控件(强调我的):
使这些验证服务器控件有效的原因是,当请求包含这些控件的ASP.NET页面时,它是ASP.NET引擎决定是在客户端还是在服务器上执行验证,具体取决于正在进行的浏览器请求.
似乎验证使用一个,而不是两个.
您可以Page.Validate()按照Tim Schmelter的建议,通过调用确保数据有效.
| 归档时间: |
|
| 查看次数: |
538 次 |
| 最近记录: |