Asp.netプロファイルは、ユーザーが入力したデータを表示または保存していませんが、エラーはありません。以下のコードのビューを次に示します。webprojectは実行されるだけで、firstnameとlastnameの両方のラベルに何も表示されません。
これはAWEBプロジェクトです、、、 OPEN WEBSITEを使ってプロジェクトを開きました!
ただし、プロジェクトでは、VISUAL STUDIOSのプログラムタイトルバーに「WEBPROJECT.sln(3)」と表示されます。
これは、ユーザーがアカウントを作成し、ユーザーのプロファイル設定を保存するときです:新規および更新
protected void CreateUserWizard_CreatedUser(object sender, EventArgs e)
{
// Create an empty Profile for the newly created user
ProfileCommon p = (ProfileCommon)ProfileCommon.Create(RegisterUser.UserName, true);
// Save profile - must be done since we explicitly created it
TextBox txtNewFirstName = (TextBox)RegisterUser.FindControl("txtNewFirstName");
Profile.FirstName = txtNewFirstName.Text;
TextBox txtNewLastName = (TextBox)RegisterUser.FindControl("txtNewLastName");
Profile.LastName = txtNewLastName.Text;
p.Save();
}
そして、これはそれが表示されるときです:新規および更新
<script runat="server">
protected void Page_Load(object sender, EventArgs e)
{
if (!this.IsPostBack)
{
ProfileCommon p = this.Profile.GetProfile(this.User.Identity.Name);
Label firstName = (Label)LoginView1.FindControl("firstName");
Profile.FirstName = firstName.Text;
Label lastName = (Label)LoginView1.FindControl("lastName");
Profile.LastName = lastName.Text;
}
}
そしてこれはWeb設定です:新規および更新
<profile defaultProvider="AspNetSqlProfileProvider" enabled="true">
<properties>
<add name="FirstName" type="String" serializeAs="String"/>
<add name="LastName" type="String" serializeAs="String"/>
<add name="Gender" type="String" serializeAs="String"/>
<add name="BirthDate" type="DateTime" serializeAs="String"/>
<add name="Occupation" type="String" serializeAs="String"/>
<add name="Website" type="String" serializeAs="String"/>
<group name="Forum">
<add name="Posts" type="Int32" defaultValue="0"/>
<add name="AvatarUrl" type="String" serializeAs="String"/>
<add name="Signature" type="String" serializeAs="String"/>
</group>
<group name="Address">
<add name="Street" type="String" serializeAs="String"/>
<add name="PostalCode" type="String" serializeAs="String"/>
<add name="City" type="String" serializeAs="String"/>
<add name="State" type="String" serializeAs="String"/>
<add name="Country" type="String" serializeAs="String"/>
</group>
<group name="Contacts">
<add name="Phone" type="String" serializeAs="String"/>
<add name="Fax" type="String" serializeAs="String"/>
</group>
</properties>
<providers>
<clear/>
<add name="AspNetSqlProfileProvider" type="System.Web.Profile.SqlProfileProvider" connectionStringName="ApplicationServices" applicationName="/"/>
</providers>
</profile>
これは私のSQLサーバーのaspnet_Profileに表示されているものです:
[PropertyNames]
[LastName:S:0:0:FirstName:S:0:0:]
これは前のコードをやり直したので、以下の前のコメントは無視してください!
PreRenderメソッドも試しました:
<script runat="server">
protected void Page_PreRender(object sender, EventArgs e)
{
ProfileCommon p = this.Profile.GetProfile(this.User.Identity.Name);
Label firstName = (Label)LoginView1.FindControl("firstName");
Profile.FirstName = firstName.Text;
Label lastName = (Label)LoginView1.FindControl("lastName");
Profile.LastName = lastName.Text;
}
しかし、エラーが発生します。 オブジェクト参照がオブジェクトのインスタンスに設定されていません。Profile.FirstName=firstName.Textの場合;