2009-08-01 79 views
0

我有一個類繼承ActiveRecordValidationBase包含以下屬性:接受輸入表示UnitCost如何在Castle.ActiveRecord中使用ValidateDecimal屬性?

​​

我也有一個UnitCostTextBox。

我想要做的是使用Castle的驗證器執行驗證一次。但是,在我可以將UnitCodeTextBox.Text傳遞給我的對象之前,我需要首先將它轉換爲小數。

如果我有一個錯誤的輸入,將引發異常。所以這意味着我仍然必須執行正則表達式驗證並將該字符串轉換爲十進制類型,然後將它交給Castle.ActiveRecord。

這是不是意味着它有多餘,有一個[ValidateDecimal]因爲我已經消毒UnitCost?

我想知道你們是怎麼做到的?我用谷歌搜索的例子,但其中大多數只處理[ValidateNonEmpty][ValidateEmail],無論如何這些都是字符串,沒有不同的數據類型

+0

web或winforms? – 2009-08-02 17:31:11

回答

1

你缺少的是綁定部分(實際上你正在手動)。 Castle.Components.Binder和Castle.Components.Validator一起用於自動綁定和驗證字符串輸入(例如HTML表單)爲強類型對象。

單軌這是否與[DataBind] attribute和AR-特定[ARDataBind]

在你必須自己實現綁定驗證+(當然你可以使用Castle.Components.Binder和Castle.Components一個WebForms的應用。 Validator)