0
    using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace WebApplication3
{
    public partial class WebForm1 : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {


            if (IsPostBack)
                CustomValidator1.Validate();
        }

        protected void CustomValidator1_ServerValidate(object source, ServerValidateEventArgs args)
        {
            if (RadioButton1.Checked == false && RadioButton2.Checked == false)
                args.IsValid = false;
            else
                args.IsValid = true;

        }




    }
}

サーバー側のカスタムバリデーターをプログラムするために使用したコードは次のとおりです。IsPostBack の "if" から取り出すと、ページを起動したときに概要に表示されますが、ボタンをクリックしても機能しないため、これがどのように機能するかを理解するのに苦労しています。誰が何が間違っているのか知っていますか?

また、サイド情報として、このタイプの検証に関して、サーバー側とクライアント側の検証の主な違いは何ですか?

4

1 に答える 1

1

サーバー側の検証とクライアント側の検証の最大の違いは (明らかなこと以外に)、クライアント側の検証ではページの送信すらできなくなる可能性があることです。サーバー側の検証は、ページが送信された後にのみ行われます。

それらを混在させると、ユーザーであるあなたがすべてのフィールドに入力し、すべてを適切な長さと値にして、送信を押すという状況が発生する可能性があります。その後、ページが戻ったときに、さらに検証メッセージが表示されます!

于 2012-11-13T22:58:51.043 に答える