5

NCCMembershipUser我正在尝试使用以下代码向我的数据填充:

string name = User.Identity.Name;

NCCMembershipUser currentUser = (NCCMembershipUser)NCCMembershipProvider.GetUser(name, true);

currentUser.Salutation = GenderSelect.SelectedValue;
currentUser.FirstName = TextBoxFirstName.Text;
currentUser.LastName = TextBoxLastName.Text;
currentUser.Position = TextBoxPosition.Text;
...

try
{
    NCCMembershipProvider u = (NCCMembershipProvider)Membership.Provider;
    u.UpdateUser(currentUser);
}

我收到错误消息“非静态字段、方法或属性‘System.Web.Security.MembershipProvider.GetUser(string, bool)’需要对象引用”

如果我改为使用Membership.GetUser()(不带name字符串)来访问当前用户,它会给我一个转换错误,并且GetUser()看起来它不能被覆盖。

编辑:

我得到的转换错误是“[A]NCC.App_Code.NCCMembershipProvider 无法转换为 [B]NCC.App_Code.NCCMembershipProvider。”

4

2 回答 2

3

该错误告诉您该GetUser方法不是staticNCCMembershipProvider ,因此如果没有该类的实例就无法调用它。

你必须在你的方法中更早地抓住你的提供者:

string name = User.Identity.Name;
NCCMembershipProvider u = (NCCMembershipProvider)Membership.Provider;

NCCMembershipUser currentUser = (NCCMembershipUser)u.GetUser(name, true);

currentUser.Salutation = GenderSelect.SelectedValue;
currentUser.FirstName = TextBoxFirstName.Text;
currentUser.LastName = TextBoxLastName.Text;
currentUser.Position = TextBoxPosition.Text;
// ...

try
{
    u.UpdateUser(currentUser);
}
于 2012-06-14T22:10:25.197 回答
1

我得到的转换错误是“[A]NCC.App_Code.NCCMembershipProvider 无法转换为 [B]NCC.App_Code.NCCMembershipProvider。”

对于此错误,请确认您的App_Code文件夹中没有该类,如果有,请将其移动到另一个位置,例如名为的新文件夹Membership

这将解决转换问题,因为应用程序正在将 2 个不同的 DLL 编译到临时 asp.net 文件夹中的 2 个不同位置。

于 2012-06-16T03:45:50.183 回答