我有一个传统的ASP.NET WebForms应用程序。我想将它迁移到ASP.NET MVC 3.我的WebForms应用程序的一个核心组件是大量使用自动生成的ProfileCommon实例。不幸的是,ASP.NET MVC 3应用程序中没有该对象。
我使用以下主题中的建议创建了一个ProfileCommon类:Implementing Profile Provider in ASP.NET MVC
我的ProfileCommon类如下所示:
public class ProfileCommon : ProfileBase
{
public virtual string FirstName
{
get { return ((string)(this.GetPropertyValue("FirstName"))); }
set { this.SetPropertyValue("FirstName", value); }
}
public virtual string LastName
{
get { return ((int)(this.GetPropertyValue("LastName"))); }
set { this.SetPropertyValue("LastName", value); }
}
public static new ProfileCommon Create(string username)
{
return ProfileBase.Create(username) as ProfileCommon;
}
public virtual ProfileCommon GetProfile(string username)
{
return Create(username) as ProfileCommon;
}
}
在我的web.config中,我有:
<profile inherits="MyCompany.Namespace1.ProfileCommon" defaultProvider="CustomTableProfileProvider">
<providers>
<clear/>
<add name="CustomTableProfileProvider" type="MyCompany.Namespace2.SqlTableProfileProvider" connectionStringName="MyDatabaseCS" table="MyTable" applicationName="MyApplication" />
</providers>
</profile>
然后我在我的控制器中的方法中有以下代码,如下所示:
ProfileCommon userProfile = (ProfileCommon)(ProfileCommon.Create(username));
string greeting = "Hello " + userProfile.FirstName;
当执行第二行(问候语)时,我得到一个例外。例外说: System.Configuration.Provider.ProviderException:web.config文件中每个提供程序属性都需要CustomProviderData属性。
我不明白这意味着什么或我需要做什么。我有点困惑,因为前面提到的帖子中的个人说一切正常。但它不适合我。有人可以帮我纠正这个错误吗?
谢谢!