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

Asp.net mvc 3 jquerymobile和asp.net mvc 3在弹出对话框中具有导航栏,asp.net-mvc-3,jquery-mobile,Asp.net Mvc 3,Jquery Mobile,我正在使用JQuerymobile,我的一个链接具有data rel=“dialog”属性,可以在对话框中启动我的页面。然而,我注意到,启动的页面包含来自主页的导航栏和标题 知道为什么会这样吗 My_layout.cshtml是: <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>@ViewBag.Title</title> <script sr

我正在使用JQuerymobile,我的一个链接具有data rel=“dialog”属性,可以在对话框中启动我的页面。然而,我注意到,启动的页面包含来自主页的导航栏和标题

知道为什么会这样吗

My_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 -->
@{
   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>

@视图包。标题
页面标题
@RenderBody() 页脚

index.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 -->
@{
   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>
@{
ViewBag.Title=“主页”;
}
@查看包。留言
  • @ActionLink(“Home”、“Index”、“Home”、null、new{data_rel=“dialog”})
  • @ActionLink(“About”,“About”,“Home”,null,new{data\u rel=“dialog”})
而about.cshtml是:

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

<h2>About</h2>
<p>
     Put content here.
</p>
@{
ViewBag.Title=“关于我们”;
}
关于

把内容放在这里。


因此,我将About.cshtml显示为一个对话框弹出窗口,但其中也显示了标题和导航栏(我不希望显示该对话框)。

\u layout.cshtml默认情况下为每个视图页面加载。要覆盖此行为,请尝试包含类似以下内容:your about.cshtml:

@{
     Layout = "~/_dialogLayout.cshtml";
 }
或者根本没有加载布局页面

@{
     Layout = "";
 }

嗨,马克,不幸的是,设置layout=”“会给我一个对话框,里面有单词undefined(正准备解决它)。好的,让它工作起来。谢谢上面的代码。我试图用MVC2代码完成所有这些工作,但不知道布局。我在about.cshtml表单和所有工作中添加了data role=“header”。再次感谢。