c# - 无法更新用户 asp.net

标签 c# asp.net http

<分区>

我的 Account.aspx 文件中有这段代码:

<table>
            <tr>
                <td>
                    <asp:Label ID="user_lbl" runat="server" Text="Username:"></asp:Label>
                </td>
                <td>
                    <asp:TextBox ID="user_txt" runat="server" ReadOnly="True"></asp:TextBox>
                </td>
            </tr>
            <tr>
                <td>
                    <asp:Label ID="email_lbl" runat="server" Text="Email:"></asp:Label>
                </td>
                <td>
                    <asp:TextBox ID="email_txt" runat="server"></asp:TextBox>
                </td>
            </tr>
        </table>
        <asp:Button ID="save_btn" runat="server" Text="Save" onclick="save_btn_Click" 
            onclientclick="save_btn_Click" />

这是你点击保存按钮后发生的事情:

MembershipUser user;
    protected void Page_Load(object sender, EventArgs e)
    {
        user = Membership.GetUser(Page.User.Identity.Name);
        user_txt.Text = user.UserName;
        email_txt.Text = user.Email;
    }

    protected void save_btn_Click(object sender, EventArgs e)
    {
        try
        {
            if (!email_txt.Text.Equals(""))
            {
                user.Email = email_txt.Text;
                Membership.UpdateUser(user);
            }
        }
        catch (Exception ex)
        {
            throw ex;
        }
    }

但这不会改变数据库中的电子邮件。这是为什么? 我希望用户能够更改他们的电子邮件。我该怎么做?

最佳答案

似乎当你点击你的按钮然后回发发生并且 page_load 事件再次发生所以它会覆盖你的更改并将相同的值存储在数据库中所以你可以使用下面提到的代码可以重新解决您的问题。

if (!IsPostBack)
            {
                user = Membership.GetUser(Page.User.Identity.Name);
                user_txt.Text = user.UserName;
                email_txt.Text = user.Email;
            }

关于c# - 无法更新用户 asp.net,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34631311/

相关文章:

c# - WPF 错误 - 在哪里寻找源/解决方案

android - "java.security.cert.CertPathValidatorException: Trust anchor for certification path not found."Android + 改造 + Asp.net API

java - 客户端和服务器之间的安全连接

c# - 'Where' 表达式中的列名称无效

c# - HLSL 计算 - 按顺序处理像素?

javascript - 如何使 OnClick 与 jQuery maphilight 一起工作

javascript - express 中的路线优先级

api - REST API 中日期的首选字符串格式是什么

c# - ASP MVC - 将 ViewModel 对象转换为另一种类型

asp.net - 防止数字以指数表示法显示的更简单方法