验证服务器端的表单

时间:2011-08-30 09:55:53

标签: c# asp.net code-behind

我在asp.net 4.0中工作 有没有办法检查服务器端,如果我们离开页面并将控件重定向到另一个页面,然后检查当前表单,是否有任何字段被修改?如果是,则先保存该记录,然后重定向到新页面。 有没有办法在服务器端检查这个? (代码背后的文件)

1 个答案:

答案 0 :(得分:1)

啊,我明白了。例如,假设您有一个用户类,您将用它来显示您的页面形式

public class User
    {
        public int Id { get; set; }
        public string Username { get; set; }
        public string Address { get; set; }
    }

on page load事件使用相关值加载此对象,并使用加载的对象显示页面表单。让我们称这个对象为“LoadedUser”

用户点击重定向链接后,您需要处理该事件(我知道您正在做)并在此事件中使用页面表单上的当前值创建一个新的User对象,然后让我们调用此对象“NewLoadedUser”现在我们将使用IEquatable接口比较LoadedUser和NewLoadedUser对象。

所以继续将其添加到用户类

public class User: IEquatable<User>
{
    public int Id { get; set; }
    public string Username { get; set; }
    public string Address { get; set; }

    public override int GetHashCode()
    {
        return Id ^ Id.GetHashCode(); // or whatever
    }

    public override bool Equals(object other)
    {
        return this.Equals(other as User);
    }

    public bool Equals(User other)
    {
        return (other != null &&
                other.Id == this.Id &&
                other.Username == this.Username &&
                other.Address == this.Address );
    }
}

在您的代码中执行此操作后,您应该能够比较这两个对象。

bool areEqual = NewLoadedUser.Equals(LoadedUser);

然后你可以使用areEqual bool标志来更新记录。

希望这有帮助