8
我在MVC2應用程序中使用dataannotations,並且在嘗試使用RESX文件資源獲取錯誤消息時有點沮喪。DataAnnotations和資源不能很好地播放
我已經嘗試了以下但不斷收到異常「的屬性參數必須是一個常量表達式,屬性參數類型的typeof運算表達式或數組創建表達式」
[Required(ErrorMessage = Resources.ErrorMessages.Required)]
[Required(ErrorMessageResourceName = Resources.ErrorMessages.Required,
ErrorMessageResourceType = typeof(Resources.ErrorMessages)]
我不斷收到該錯誤信息除非我將ErrorMessageResourceName
替換爲「必需」而不是Resources.ErrorMessages.Required
。
任何人都可以告訴我,如果我做對了嗎?
我可以只使用ErrorMessage屬性呢?我更喜歡強類型。 – devlife 2010-03-15 23:37:48
@devlife:不。如果您想要本地化,請不要。這正是資源屬性的用途。事實上,這就是* any *本地化的方式,在鏈中的某一點,您將不得不根據名稱查找資源字符串,這就是外部化資源的工作原理。而且這仍然是基於資源類的「強類型」,您只是對資源名稱本身沒有編譯時安全性。如果你想這樣做,只需像'public const string Required =「Required」那樣創建一個像'ResourceNames'這樣的類,那麼你可以指定這些類作爲資源名稱。 – Aaronaught 2010-03-15 23:58:16