0

私は JQuerymobile を使用しており、リンクの 1 つに data-rel="dialog" 属性があり、ダイアログでページを起動します。ただし、起動されたページには、ヘッダーと一緒にメイン ページのナビゲーション バーがあることに気付きました。

なぜこれが起こっているのですか?

私の _layout.cshtml は次のとおりです。

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>@ViewBag.Title</title>
<script src="../../Scripts/jquery-1.6.4.js" type="text/javascript"></script>
<script src="../../Scripts/jquery.mobile-1.1.0.js" type="text/javascript"></script>
<link href="../../Content/jquery.mobile-1.1.0.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div data-role="page">
    <div data-role="header">
        <h1>Page Title</h1>
        <div data-role="footer">
            <div data-role="navbar">
                <ul>
                    <li><a href="#">One</a></li>
                    <li><a href="#">Two</a></li>
                    <li><a href="#">Three</a></li>
                </ul>
            </div>
            <!-- /navbar -->
        </div>
    </div>
    <!-- /header -->
    <div data-role="content">
        @RenderBody()
    </div>
    <!-- /content -->
    <div data-role="footer">
        <h4>Page Footer</h4>
    </div>
    <!-- /footer -->
</div>
<!-- /page -->

index.cshtml は次のとおりです。

@{
   ViewBag.Title = "Home Page";
}
<h2>@ViewBag.Message</h2>
<ul>
    <li>@Html.ActionLink("Home", "Index", "Home", null, new { data_rel = "dialog" })</li>
    <li>@Html.ActionLink("About", "About", "Home", null, new { data_rel = "dialog" })</li>
</ul>

そして about.cshtml は次のとおりです。

@{
    ViewBag.Title = "About Us";
}

<h2>About</h2>
<p>
     Put content here.
</p>

SO 私は About.cshtml をダイアログポップアップとして表示しますが、ヘッダーとナビゲーションバーも表示されます (これを表示したくありません)。

4

1 に答える 1

1

_layout.cshtmlは、デフォルトで各ビューページにロードされます。この動作をオーバーライドするには、about.cshtmlのようなものを含めてみてください。

@{
     Layout = "~/_dialogLayout.cshtml";
 }

または、レイアウトページをまったくロードしない

@{
     Layout = "";
 }
于 2012-05-15T15:32:26.593 に答える