隨着數據註釋它現在很容易本地化使用這樣Resource.resx文件,例如錯誤信息:ASP.NET MVC 3本地化非數據註釋錯誤的最佳方式是什麼?
public class Student
{
. . .
[Required(ErrorMessageResourceName ="Required",
ErrorMessageResourceType = typeof(StudentResources))]
[StringLength(16)]
[Display(Name = "FirstName", ResourceType = typeof(StudentResources))]
public string FirstName { get; set; }
. . .
}
現在,讓我們說我要檢查,如果一個學生已經取得了給定月份付款和同期:
public bool CheckIfAlreadyPaid(Payment payment)
{
return repository.GetPayments().Any(p => p.StudentId == payment.StudentId &&
p.Month == payment.Month &&
p.Year == payment.Year);
}
如果他已經作出的支付,我做我的服務層以下:
if (CheckIfAlreadyPaid(payment))
{
modelState.AddModelError("AlreadyPaid",
Resources.Views.Payment.PaymentCreateResources.AlreadyPaid);
}
它的工作原理,但是我並沒有對在服務層中引用資源文件充滿信心。
是否有一種標準或更好的方式來定位與模型屬性無關的錯誤消息(數據註釋) - 來自業務邏輯規則的錯誤?我還應該將這些錯誤添加到ModelStateDictionary中嗎?