簡體   English   中英

如何在使用EnableModelValidation時驗證FormView數據?

[英]How to validate FormView data when using EnableModelValidation?

我正在嘗試使用FormView並希望驗證服務器端的一些數據。 我正在嘗試使用屬性EnableModelValidationMSDN對此非常不完整。

看到了一個aproach但是關於Dynamic Data而不僅僅是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的DynamicData版本,否則啟用該屬性不會執行任何操作請參閱此內容以獲得有關使用ASP.NET動態數據腳手架以及一些有用鏈接的更好說明

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM