如何在使用EnableModelValidation时验证FormView数据
本文关键字:验证 FormView 数据 EnableModelValidation | 更新日期: 2023-09-27 18:08:37
我试图使用FormView
,并希望在服务器端验证一些数据。我试图使用属性EnableModelValidation
,但MSDN非常不完整。
我看到了一种方法(,但关于动态数据,而不仅仅是ObjectDataSource),你抛出一个ValidationException
,它会处理,如果你有一个ValidationSummary
。不幸的是,它崩溃了,黄色的错误页,而不是显示摘要。
下面是我的类:
namespace FormViewTest
{
[DataObject]
public class Person
{
private int age;
[DataObjectField(false)]
public int Age
{
get { return age; }
set
{
if (value < 0)
{
throw new ValidationException("Invalid age");
}
age = value;
}
}
public void Insert(Person p)
{ }
public Person Get()
{
return new Person();
}
}
}
和aspx:
<asp:FormView runat="server"
DataSourceID="ObjectDataSource1"
DefaultMode="Insert"
EnableModelValidation="true">
<InsertItemTemplate>
Age:
<asp:TextBox ID="AgeTextBox" runat="server"
Text='<%# Bind("Age") %>' />
<br />
<asp:LinkButton ID="InsertButton" runat="server"
CommandName="Insert"
Text="Insert" />
</InsertItemTemplate>
</asp:FormView>
<asp:ObjectDataSource ID="ObjectDataSource1" runat="server"
DataObjectTypeName="FormViewTest.Person"
InsertMethod="Insert" SelectMethod="Get"
TypeName="FormViewTest.Person"></asp:ObjectDataSource>
<asp:ValidationSummary ID="ValidationSummary1" runat="server" />
我试着像我提到的文章中所说的那样添加其他控件,但它什么也没做:
<asp:DynamicValidator ErrorMessage="Error" runat="server"
ControlToValidate="ObjectDataSource1" />
我希望有人能帮助我使用这个EnableModelValidation
,因为我找不到关于它的官方文档。
启用该属性不会做任何事情,除非你正在使用动态数据版本的FormView见this关于使用ASP的更好解释。. NET动态数据脚手架以及一些有用的链接