用asp.net的MVC,你可以使用註釋 [必填(errormessage的=「這是必須的」)數據註解讓errormessage的出庫
如何創建這樣的:
[必需(errormessage =「ERRORXX」)]
所以我可以在數據庫中查找這個ERRORXX是什麼,並將它顯示在我的表單上。現在我的表單顯示ERRORXX。
如何創建解決我的問題的東西?
Thx!
用asp.net的MVC,你可以使用註釋 [必填(errormessage的=「這是必須的」)數據註解讓errormessage的出庫
如何創建這樣的:
[必需(errormessage =「ERRORXX」)]
所以我可以在數據庫中查找這個ERRORXX是什麼,並將它顯示在我的表單上。現在我的表單顯示ERRORXX。
如何創建解決我的問題的東西?
Thx!
我想你的意思是你想讀/使用給定屬性的屬性聲明?
如果是這樣,您可以創建自己的RequiredAttribute類(以允許根據需要添加新的或更合適的屬性)。見:Attributes Tutorial
只是一個想法:爲什麼不從resx file拉錯誤信息?我認爲這是做這件事的常見方式。它甚至允許您輕鬆地本地化您的錯誤消息。
我認爲,通過使用資源文件(resx文件),稍後更容易更改錯誤消息。例如,可以在Word Pad中打開和編輯resx文件。你並不需要訪問與用戶名/密碼數據庫,查詢它,等
Localizing ASP.NET MVC Validation
Globalizing ASP.NET MVC Client Validation
看看這裏太:
要採取的默認路徑是使用資源。 但是,我理解你的痛苦:)我已經達到的方式有點不尋常,但我會給你一個快速的破敗。 在我們的項目中,使用資源文件不是一種選擇,因爲它的方式對我們的目的太有限了,現在我不會讓你知道這些細節! :) 按照最基本的原則,我們將驗證屬性的errorMessage屬性設置爲某種「鍵」,然後將其用作在我們的CMS數據庫中查找正確(語言)響應的方式,驗證失敗(在我們使用MVC的情況下,當我們更新模型並檢查狀態時 - 全部在控制器級別)。
這與使用資源(通過指定「ErrorMessageResourceName」和「ErrorMessageResourceType」)的原理相同,但您可以根據需要進行操作。爲了清楚起見,我們最初將RequiredAttribute(作爲一個例子)擴展爲我們自己的東西,其中包括放入正確命名的參數,以便我們稍後從數據庫中檢索明智的CMS值。爲了更加清楚,我們使用MVC和自定義的HtmlHelpers來呈現我們自己的ValidationControls,它們最終會從我們的自定義註釋中消費自定義值,等等 - 這些都不影響這裏的簡化原則,這只是爲了使用「errorMessage」或類似的東西,作爲從您想要的地方查看實際消息的方式,以及您想要的時間。
我可以從requiredAttribute類繼承嗎? – Masna 2010-06-07 22:37:29
Woops,我想我錯過了你的問題的重點...抱歉。雖然,不,通常你不能擴展屬性實現,因爲按照慣例,它們被標記爲密封。 – Reddog 2010-06-07 22:52:52
屬性屬性在編譯到庫中時必須是固定的常量。 @Leniel的第一個鏈接顯示了我將如何通過資源文件實現你想要的。 – Reddog 2010-06-07 22:54:27