jquerymobile和asp.net mvc 3在弹出对话框中有导航栏

时间:2012-05-15 15:04:58

标签: asp.net-mvc-3 jquery-mobile

我正在使用JQuerymobile,我的一个链接具有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>

所以我将About.cshtml显示为对话框弹出窗口,但同时显示了标题和导航栏(我不希望这样显示)。

1 个答案:

答案 0 :(得分:1)

默认情况下,为每个视图页面加载

_layout.cshtml。要覆盖此行为,请尝试使用about.cshtml:

这样的内容
@{
     Layout = "~/_dialogLayout.cshtml";
 }

或者根本没有加载布局页面

@{
     Layout = "";
 }