C# ASP.NET配置文件未更新某些值?可能是代码问题

C# ASP.NET配置文件未更新某些值?可能是代码问题,c#,asp.net,profile,C#,Asp.net,Profile,好的,我一直在尝试制作一个ASP.NET网站,它使用基本的评测功能,到目前为止,我在显示和编辑评测信息的代码方面遇到了麻烦 基本上,在我的页面的顶部,它显示了您的“屏幕名”和“Bio”——两者在web.config(以下)中的定义方式相同。在我的页面中,我有两个文本框和一个保存按钮,分别是AssignScreenname、AssignBio和ChangeProfileSaveButton。单击“保存”按钮时,每次运行if&else if检查框是否为null或空字符串,如果不是,则将其值分配给配置

好的,我一直在尝试制作一个ASP.NET网站,它使用基本的评测功能,到目前为止,我在显示和编辑评测信息的代码方面遇到了麻烦

基本上,在我的页面的顶部,它显示了您的“屏幕名”和“Bio”——两者在web.config(以下)中的定义方式相同。在我的页面中,我有两个文本框和一个保存按钮,分别是AssignScreenname、AssignBio和ChangeProfileSaveButton。单击“保存”按钮时,每次运行if&else if检查框是否为null或空字符串,如果不是,则将其值分配给配置文件。然后,代码调用Profile.save()并将您重定向回同一页面,以确保整个页面完全刷新

我的问题是当您指定一个值时,另一个值会被划掉。例如,指定Bio值意味着任何预先存在的Screenname值都将被删除。我不明白它为什么会这样做,因为它应该只将框分配给配置文件,因为它们中没有文本

我还发现,删除Profile.Save()没有任何作用,这很有趣,所以问题可能与此有关

代码: my Web.Config的元素:

<profile>
    <properties>
      <add name="Username"/>
      <add name="Screenname" />
      <add name="Bio" />
      <add name="ProfilePictureURL" />
    </properties>
  </profile>

我会尝试每天回到这里回复评论,所以如果你需要什么,请随时提问!欢迎所有想法,谢谢

将Web.Config文件的System.Web部分更改为设置automaticsavenabled=false

您还可以使用:

Profile.SetPropertyValue("propertyname",newvalue);
Profile.Save();
例如:

Profile.SetPropertyValue("Screenname",assignscreenname.Text);
Profile.Save();

对于您要设置的每个属性。

“我将尝试每天检查这里以回答评论”您很长一段时间都不是Stackoverflow的成员,是吗?通常你会在几分钟内得到回复,而不是几天。你肯定是对的。。。如果要检查not empty或not null,则可能需要not empty和not null不幸的是,操作不受影响。看来我们的方法是一样的,我能问一下区别吗?@Nationalsarcassociety看到了我最新的答案。强类型访问器确实调用了setPropertyValue方法哦,太好了!谢谢(我喜欢你的IF-loop-one行程序,但我正计划在它运行后压缩代码)。
if (Page.IsValid)
{
    if (!String.IsNullOrEmpty(AssignScreenName.Text) Profile.Screenname = AssignScreenName.Text;
    if (!String.IsNullOrEmpty(AssignBio.Text) Profile.Bio = AssignBio.Text;        
}
Profile.Save();
Response.Redirect("MyProfile.aspx");
Profile.SetPropertyValue("propertyname",newvalue);
Profile.Save();
Profile.SetPropertyValue("Screenname",assignscreenname.Text);
Profile.Save();