我一直在搜索这个主题,但没有找到我想要的。基本上我开始计划一个包含所有 UML 内容、用例、类图等等的项目。然后我们决定使用 ASP.NET MVC。该应用程序是一种 O-Desk 或 Elance
我有用户、承包商、公司、版主和管理员。
我有点困惑模型应该如何表示这个用户以及如何使用 asp.net mvc 功能设置权限和角色。
在一个普通的应用程序中,我会为他们每个人设置一个类,并且他们可能会扩展 User,它会有用户名、密码和电子邮件。
在承包商课程中,我拥有有关承包商的所有信息,例如他申请的工作、他的简历等。
在公司类中,我发布了报价、公司名称等。
那么最好的做法是什么?我这里有一段代码
public class User
{
[Key]
public string UserID { get; set; }
[Required(ErrorMessage = "Email is required")]
[DataType(DataType.EmailAddress, ErrorMessage="Email Format is wrong. Example: user@user.com")]
[Remote("doesEmailExist", "Contractors", HttpMethod = "POST", ErrorMessage = "Email already exists. Please enter a different one.")]
public string Email { get; set; }
[Required]
[Remote("doesUserNameExist", "Contractors", HttpMethod = "POST", ErrorMessage = "User name already exists. Please enter a different user name.")]
public string Username { get; set; }
[Required]
[StringLength(100, ErrorMessage = "The {0} must be at least {2} characters long.", MinimumLength = 6)]
[DataType(DataType.Password)]
public string Password { get; set; }
}
还有一点疑问,我应该有 ContractorID 吗?或者我抓住用户ID?只是问,因为我不知道数据库在生成后会是什么样子。无论如何,我现在要试试这个。
public class Contractor extends User
{
[Key]
public int ContractorID { get; set; }
[Required(ErrorMessage = "First Name is required")]
[StringLength(20, ErrorMessage = "First Name max length is 20 characters")]
[Display(Name = "First Name")]
public string FirstName { get; set; }
[Required(ErrorMessage = "Last Name is required")]
[StringLength(20, ErrorMessage = "First Name max length is 20 characters")]
[Display(Name = "Last Name")]
public string LastName { get; set; }
}
public class Company extends User
{
[Key]
public int CompanyID { get; set; }
[Required(ErrorMessage = "Name of the Company required")]
public string CompanyName { get; set; }
private List<Offer> Offers;
public void AddOffer (Offer offer) {
Offers.Add(offer);
}
public void RemoveOffer(Offer offer)
{
Offers.Remove(offer);
}
}
感谢您提供的任何帮助或提示!问候。