Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/310.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在服务器端验证表单_C#_Asp.net_Code Behind - Fatal编程技术网

C# 在服务器端验证表单

C# 在服务器端验证表单,c#,asp.net,code-behind,C#,Asp.net,Code Behind,我在asp.NET4.0中工作 有没有办法在服务器端检查,如果我们离开页面并将控件重定向到另一个页面,然后检查当前表单,是否有任何字段被修改?如果是,则首先保存该记录,然后重定向到新页面。 有没有办法在服务器端检查这个问题?(代码隐藏文件)啊,我明白了。作为一个示例,让我们假设您有一个用户类,您将使用它来显示有问题的页面表单 public class User { public int Id { get; set; } public string User

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

啊,我明白了。作为一个示例,让我们假设您有一个用户类,您将使用它来显示有问题的页面表单

public class User
    {
        public int Id { get; set; }
        public string Username { get; set; }
        public string Address { get; set; }
    }
在页面加载事件中,使用相关值加载此对象,它们使用加载的对象显示页面表单。让我们将此对象称为“LoadedUser”

在用户单击重定向链接后,您需要处理该事件(我知道您正在这样做),在该事件中,使用页面表单上的当前值创建一个新的用户对象,然后让我们调用该对象“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 );
    }
}
然后您可以使用areEqual bool标志来更新记录或不更新记录


希望这对我有所帮助。作为一个示例,让我们假设您有一个用户类,您将使用它来显示有问题的页面表单

public class User
    {
        public int Id { get; set; }
        public string Username { get; set; }
        public string Address { get; set; }
    }
在页面加载事件中,使用相关值加载此对象,它们使用加载的对象显示页面表单。让我们将此对象称为“LoadedUser”

在用户单击重定向链接后,您需要处理该事件(我知道您正在这样做),在该事件中,使用页面表单上的当前值创建一个新的用户对象,然后让我们调用该对象“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 );
    }
}
然后您可以使用areEqual bool标志来更新记录或不更新记录


希望这有助于

如果我没有正确理解您的问题,请道歉。但你肯定有某种链接或按钮触发重定向?你们不能在服务器端触发一个事件,在那个里你们可以进行相关的验证,然后适当地保存记录吗?我不知道如何检查表单上是否有更改。我得查一下零钱。我已处理事件。如果我没有正确理解您的问题,请道歉。但你肯定有某种链接或按钮触发重定向?你们不能在服务器端触发一个事件,在那个里你们可以进行相关的验证,然后适当地保存记录吗?我不知道如何检查表单上是否有更改。我得查一下零钱。我已经处理好了。好的,我很快就会试试这个。。非常感谢:)好的,我马上就来试试。。非常感谢:)