好吧,所以我一直在尝试创建一个使用基本性能分析功能的ASP.NET网站,到目前为止,我遇到了我必须显示和编辑配置文件的代码的问题信息。
基本上,在我的页面的顶部,它显示了“Screenname”和“Bio” - 两者都在web.config(下面)中以相同的方式定义。在我的页面中,我有两个文本框和一个保存按钮,IDed为AssignScreenname,AssignBio和ChangeProfileSaveButton 。单击保存按钮时, a if&否则,如果每次运行都检查其中一个框是空还是空字符串,并且如果不是那个值被分配给配置文件。然后,代码调用Profile.save()并将您重定向回同一页面,以确保完整刷新整个页面。
我的问题是当你分配一个值时,另一个值会被划掉。例如,指定Bio值意味着删除任何预先存在的Screenname值。我不明白为什么会这样做,因为它只应该将配置框分配给配置文件,因为它们中没有文本。
我还发现有趣的是删除Profile.Save()什么都不做,所以问题可能与此有关吗?
代码: 我的Web.Config元素:
<profile>
<properties>
<add name="Username"/>
<add name="Screenname" />
<add name="Bio" />
<add name="ProfilePictureURL" />
</properties>
</profile>
我的C#分配值:
protected void ChangeProfileSaveButton_Click(object sender, EventArgs e)
{
if (Page.IsValid)
{
if (AssignScreenName.Text != "" || AssignScreenName.Text != null)
{
Profile.Screenname = AssignScreenName.Text;
}
if (AssignBio.Text != "" || AssignBio.Text != null)
{
Profile.Bio = AssignBio.Text;
}
}
Profile.Save();
Response.Redirect("MyProfile.aspx");
}
}
我会每天回来看看回答评论,所以如果你需要什么,请随时问!欢迎所有想法,谢谢!
答案 0 :(得分:2)
更改Web.Config文件的System.Web部分以设置automaticSaveEnabled = false;
离。
<profile enabled="true" automaticSaveEnabled="false">
清洁代码:
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();
您想要设置的每个属性。