我在asp.net 4.0中工作 有没有办法检查服务器端,如果我们离开页面并将控件重定向到另一个页面,然后检查当前表单,是否有任何字段被修改?如果是,则先保存该记录,然后重定向到新页面。 有没有办法在服务器端检查这个? (代码背后的文件)
答案 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标志来更新记录。
希望这有帮助