0

Asp.Net ページをコーディングするときは、通常、aspx に runat 属性を追加します。

<form id="form1" runat="server">

ユーザーがこれを行っていないかどうか、つまり、これだけを行ったかどうかをコードビハインドで伝えることは可能ですか:

<form id="form1">

ここではフォームのIDは「form1」ですが、私の場合はこれがわかりません。このような背後にあるコードは、私が探しているものです:

if(Page.HasForm)
{
}
4

4 に答える 4

2

.aspx ページごとに "runat=server" を含むフォーム タグを 1 つだけ持つことができます。Page.Form が null かどうかを確認するだけです。null の場合、runat サーバーにマークされたフォームはありません。

if (Page.Form != null)
{

}

.aspx ページで要素を処理し、サーバー側で対応するオブジェクトを作成するのは runat="server" 部分です。コンポーネントがサーバー上で実行されていない場合、そのコンポーネントはページのコントロール階層に追加されません。

于 2009-09-25T02:08:46.657 に答える
0

var v = this.Form.TagName; //runat化したフォーム名を取得。

もちろん、runat として作成されていない場合、コード ビハインドはとにかく実行されません...

于 2009-09-25T02:30:04.030 に答える
0

コード ページで C# または Visual Basic でコーディングする場合、runat=server オプションが設定されていないオブジェクトにはアクセスできません。

me.controls ページまたはそのようなもの (正確なコードはわかりませんが、これに近いもの) を使用して、ページからすべてのコントロールに簡単にアクセスし、コントロールのタイプをチェックしてフォームを取得できます。

なぜそれを知る必要があるのですか?ページに runat=server フォームがない場合、実際にはサーバー ページとして使用できません。

于 2009-09-25T02:32:20.280 に答える
0

コードビハインドからフォームにアクセスできます。

Response.Write(form1.Name);

runat="server" がないと、コンパイラ エラーが発生します。

于 2009-09-25T02:58:15.627 に答える