【发布时间】:2011-04-26 11:00:54
【问题描述】:
我正在 MVC3 中创建一个应用程序。在创建应用程序时,Web 项目中创建了三个文件夹:
- 控制器
- 型号
- 观看次数
我想实现一个分层架构,因此我创建了一个类库项目,其中包含业务层和存储库层。
我将模型从 web 项目移动到类库项目,以便我可以在业务层中使用模型。 模型类包含所需的属性及其验证,如下所示:
public class ChangePasswordModel
{
[Required]
[DataType(DataType.Password)]
[Display(Name = "Current password")]
public string OldPassword { get; set; }
[Required]
[ValidatePasswordLength]
[DataType(DataType.Password)]
[Display(Name = "New password")]
public string NewPassword { get; set; }
[DataType(DataType.Password)]
[Display(Name = "Confirm new password")]
[Compare("NewPassword", ErrorMessage = "The new password and confirmation password do not match.")]
public string ConfirmPassword { get; set; }
}
public sealed class ValidatePasswordLengthAttribute : ValidationAttribute, IClientValidatable
我在上面的同一个文件中还有一个类来验证我的密码长度,它实现了接口IClientValidatable
我面临两个问题:
- 我无法使用 CompareAttribute 以及接口
IClientValidatable。提到的两个类都与 System.Web.MVC 不同。我已将System.Web.MVCdll 的引用添加到我的类库中。
在这两种情况下,我都无法解决问题。 resharper 提到了与循环依赖相关的错误。
我可以不使用System.Web.Mvc 引用并使用类库中提供的类和验证吗?
此外,System.ComponentModel.DataAnnotations 中提供的验证不会产生问题。
我无法构建解决方案,因此无法继续开发。 欢迎任何解决方案和建议。
【问题讨论】:
-
如果您需要帮助,您应该花更多时间格式化您的问题。这次我做到了。
标签: asp.net-mvc-3