1

ASP.NETは、複数のrunat="server"フォームの使用を制限しています。

現在、フォームのないマスターページがあります。

他にも多くのページがあり、フォーム(Register.aspx-Login.aspx)があるものと、フォームがないものがあります。

マスターにログアウトボタンを追加したい(ユーザーがログインした後)。

これは通常のことです。ログアウトボタンは常に表示されているはずです。

ただし、このASPボタンコントローラーを使用するには、マスターページのフォームを使用する必要があります。

つまり、エラーが発生するため、フォームのある他のページにアクセスできなくなります。

私はすでにこれを回避する他のアイデアを持っています。

1- JQueryを使用してAjaxを使用してハンドラーをロードし、セッションをクリアします。

2-ログアウトをボタンのようなリンクにし、それをクリックして別の.aspxページをロードします。ページのロード方法で、セッションをクリアしてからリダイレクトします。最初のページのように聞こえます...

3-同じページに移動するリンクにします(Default.aspx?logout = 1)<-そして、Page Loadメソッド内のこのパラメーターをチェックし、そこにある場合は、セッションをクリアします。

これらの良いアプローチはありますか?もっと良いものはありますか?

4

2 に答える 2

1

マスターページにフォームを含めることができない理由を説明し、そのマスターページを使用してそれらのページのすべてのフォームを削除してください。とにかく、これは ASP.NET で最も一般的なパターンです。

何らかの理由でそれができない場合は、2 を使用します。

于 2013-01-12T18:11:02.640 に答える
0

それをバイパスする必要はありません。全体asp:ContentPlaceHolderを内側にラップするだけでform runat="server"、すべてのページにフォームが表示されます。

マスターページ

<form runat="server">
    <asp:ContentPlaceHolder id="MainBodyContent"></asp:ContentPlaceHolder>
</form>
于 2013-01-12T18:21:59.520 に答える