我是一個新手,當涉及到ASP.NET MVC表的其他用戶信息,所以這將是巨大的,如果任何人都可以提供指導與以下情形。ASP.NET MVC 3存儲使用實體框架代碼優先的方法
在一個場景中,從而將有兩種類型的會員可以到網站,客戶和供應商登記的Loooking。
每種類型將與附加信息的部件被存儲在單獨的模型/表(即客戶機模型/表,供應商的模型/表),採用默認構件憑證(用戶名,電子郵件,密碼)沿。不確定這是最好的方法。任何建議歡迎?
將有每一種類型,從而在成功註冊它們將被添加到它們各自的角色(即客戶端,供應商)一個單獨的寄存器頁。
這是我玩的客戶端模型。
public class Client
{
// Will set this manually when creating a Client member
[DatabaseGenerated(DatabaseGeneratedOption.None)]
public int ClientId { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
}
目前,我已經創建了一個視圖模型如下辦理登記的客戶
public class RegisterClient
{
// Default ASP.NET MVC RegisterModel
public RegisterModel RegisterModel { get; set; }
public Client Client { get; set; }
}
以下是在ClientController
public ActionResult Register()
{
return View();
}
[HttpPost]
public ActionResult Register(RegisterClient model)
{
if (ModelState.IsValid)
{
// Attempt to register the user
MembershipCreateStatus createStatus;
Membership.CreateUser(model.RegisterModel.UserName, model.RegisterModel.Password, model.RegisterModel.Email, null, null, true, null, out createStatus);
if (createStatus == MembershipCreateStatus.Success)
{
FormsAuthentication.SetAuthCookie(model.RegisterModel.UserName, false /* createPersistentCookie */);
Roles.AddUserToRole(model.RegisterModel.UserName, "Client");
// Get UserId for Client <-> User relationship
int id = int.Parse(Membership.GetUser(model.RegisterModel.UserName).ProviderUserKey.ToString());
model.Client.UserProfileId = id;
db.Clients.Add(model.Client);
db.SaveChanges();
return RedirectToAction("Index", "Home");
}
else
{
ModelState.AddModelError("", createStatus.ToString());
}
}
// If we got this far, something failed, redisplay form
return View(model);
}
的註冊方法,這是一個合適的方法?我正在考慮讓客戶端模型繼承MembershipUser。
我怎麼能那麼其會員的詳細信息(即用戶名和電子郵件)沿創建客戶端的網頁列表?
所以我應該看看引入一個與.net成員資格(包括客戶/供應商的公共屬性)相關聯的用戶模型。然後使用用戶模型ID作爲客戶端/供應商模型中的Key和ForeignKey創建關聯。我理解這個理論只是不確定如何實施解決方案。我需要一個ViewModel來處理客戶端的Edit/Details頁面嗎?我可以如何拉入.net會員資格屬性的任何例子?它會類似於默認的AccountModels/Controllers嗎? – 2012-04-26 12:57:18
您應該爲客戶和供應商提供編輯/詳細信息頁面,這與成員資格是分開的。但它也可以提供更改密碼的表單。您可以使用'User.Identity.Name'獲取當前用戶的用戶名。要獲取ASP.Net成員系統中用戶的用戶名,需要在成員中找到用戶,然後獲取用戶名並將其存儲在用戶表中,而不是成員資格表。 – flumeware 2012-04-26 16:35:17
您能否提供我的用戶模型和客戶端模型應該如何顯示的示例? – 2012-05-02 15:53:09