实现 Profile Provider in ASP.NET MVC
asp.net mvc 没有向之前那样自动为我们生成可以直接操作profile的ProfileCommon类,所以我们要自己写一个。当然这还是比较容易的。
ProfileController.cs
|
1
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
[AcceptVerbs("POST")]
public ActionResult CreateProfile(string company, string phone, string fax, string city, string state, string zip) { MembershipUser user = Membership.GetUser(); ProfileCommon profile = ProfileCommon.Create(user.UserName, user.IsApproved) as ProfileCommon; profile.Company = company; profile.Phone = phone; profile.Fax = fax; profile.City = city; profile.State = state; profile.Zip = zip; profile.Save(); return RedirectToAction("Index", "Account"); } |
web.config:
这里需要注意的是,需要去除掉自定义在<properties>中的所有属性,因为我们在之后的ProfileCommon里自定义了相应的属性。
同时在<profile>中添加
|
1
|
<profile inherits="MySite.Models.ProfileCommon" defaultProvider="....
|
实现的ProfileCommon类
|
1
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 |
public class ProfileCommon : ProfileBase
{ public virtual string Company { get { return ((string)(this.GetPropertyValue("Company"))); } set { this.SetPropertyValue("Company", value); } } public virtual string Phone { get { return ((string)(this.GetPropertyValue("Phone"))); } set { this.SetPropertyValue("Phone", value); } } public virtual string Fax { get { return ((string)(this.GetPropertyValue("Fax"))); } set { this.SetPropertyValue("Fax", value); } } public virtual string City { get { return ((string)(this.GetPropertyValue("City"))); } set { this.SetPropertyValue("City", value); } } public virtual string State { get { return ((string)(this.GetPropertyValue("State"))); } set { this.SetPropertyValue("State", value); } } public virtual string Zip { get { return ((string)(this.GetPropertyValue("Zip"))); } set { this.SetPropertyValue("Zip", value); } } public virtual ProfileCommon GetProfile(string username) { return Create(username) as ProfileCommon; } } |

浙公网安备 33010602011771号