1

LogOnUserControlと呼ばれる部分的なビュー/ユーザーコントロールがあり、サイトのサイドバー(Site.Masterで定義)に表示されます。また、LogOnUserControlをレンダリングする別のLogOnビューもあります。

LogOnビューにLogOnUserControlの2つのインスタンスは必要ありません。これは単純に紛らわしいため、現在の考えでは、次のような条件を含めることです。

// Semi-pseudocode
if (!Request.IsAuthenticated) && View.Name != "LogOn")

LogOnUserControlで。

部分ビューがログオンビューを認識しているため、これは間違っていると感じます。また、ビューの名前を取得する方法がわからないため、何か間違ったことをしているという感覚が強まります。:-)

編集: 同じ部分ビューがSite.Masterのログオンビューとサイドバーの両方に使用されるというさらに複雑な問題があります。

4

3 に答える 3

5

サイドバーにログイン部分がない状態で、ログインビューに別のマスターページを使用することを検討しましたか?HTMLマークアップの重複が心配な場合は、ネストされたマスターページを使用してその問題を回避できます。

于 2009-04-24T22:40:56.297 に答える
3

マスターページで、サイドバー領域のコンテンツをコンテンツ領域タグでラップし、SideBarContentAreaなどのIDを付けます。これは、マスターに基づいてページでオーバーライドすることを選択できる新しいコンテンツ領域を作成し、子ページに実装しない場合に表示されるデフォルトのコンテンツを指定します。ログインページで行う必要があるのは、SideBarContentAreaをオーバーライドし、今回はログインコントロールを含めないことだけです。

バダビン!

于 2009-04-25T03:13:10.590 に答える
2

これを示すフラグをViewDataに格納できます。強く入力するか、直接アクセスするかはあなた次第です。したがって、マスターページでこれを使用できます。

<% if (ViewData["HideLogOnUserControl"] == "Y") { %>
    Insert HTML here
<% } else { %>
    Insert HTML here
<% } %>
于 2009-04-24T23:59:12.677 に答える