Asp.net mvc 将ASP.NET MVC布局应用于Jquery.Mobile页面的最佳实践

Asp.net mvc 将ASP.NET MVC布局应用于Jquery.Mobile页面的最佳实践,asp.net-mvc,jquery-mobile,Asp.net Mvc,Jquery Mobile,这个问题很接近于:但我正试图找到最佳实践,因为我认为在每个视图中重新键入页眉和页脚是没有效率的。一定有更好的办法 因此,我正在寻找使ASP.NET MVC共享布局视图(也称为母版页)与我的视图/部分视图一起工作的最佳方法 通过阅读,有两种方法可以从MVC布局呈现JQuery移动页面: 1) 标准布局格式: <!DOCTYPE html> <html> <head> <title>Page Title</title>

这个问题很接近于:但我正试图找到最佳实践,因为我认为在每个视图中重新键入页眉和页脚是没有效率的。一定有更好的办法

因此,我正在寻找使ASP.NET MVC共享布局视图(也称为母版页)与我的视图/部分视图一起工作的最佳方法

通过阅读,有两种方法可以从MVC布局呈现JQuery移动页面:

1) 标准布局格式:

 <!DOCTYPE html> 
<html> 
    <head> 
    <title>Page Title</title> 
        ...
</head> 
<body>
<div  data-role="page"> 
    <div  data-role="header">...</div> 
    <div  data-role="content">@RenderBody()</div> 
    <div  data-role="footer">...</div> 
</div>
</body>
</html>

页面标题
...
... 
@RenderBody()
... 
在我学习的过程中,我开始遇到问题,后来才知道你不能在主付款中加载其他“页面”。所有继承的视图都必须是主Jquery移动页面的一部分。 糟糕。 (二)


页面标题
...
@RenderBody()
这将起作用,但也意味着我必须在每个视图上重新键入页眉和页脚

你们能分享一下你们的观点吗?对于我来说,在布局中加载多个Jquery Mobile“页面”而不必到处重复页眉/页脚的最佳方法是什么。。。我是说,如果一个人在某个时刻不得不改变怎么办


提前谢谢。

在类似情况下,我做过的一件事是制作一个没有“页面”div的主布局:


...
@RenderBody()
然后创建从主布局继承的布局页面,在主布局中可以包含页眉/页脚

@{
    Layout = "~/Views/Shared/_LayoutMobileMaster.cshtml";
}
<div data-role="page" data-theme="b" position="fixed">
    <div data-role="header" data-position="fixed" data-theme="b" id="contentHeader">
        <a id="backBtn" data-direction="reverse" data-icon="back" class="ui-btn-left">Back</a>
        <h1>@ViewBag.Title</h1>
        <a id="logoutBtn" data-icon="gear" class="ui-btn-right">Logout</a>
    </div>
    <div data-role="content" data-theme="b">
        @RenderBody()
    </div>
</div>
@{
Layout=“~/Views/Shared/\u LayoutMobileMaster.cshtml”;
}
返回
@视图包。标题
注销
@RenderBody()

当然,如果您的每个页面都有不同的页眉/页脚,那么这就不太实际;您不妨去掉中间布局,将页眉/页脚直接放在每个视图中。但是,如果您有不同的多个页面集,其中每个页面集都需要有特定的外观,那么我认为这可能非常有用。

我不太明白使用主布局的意义。它没有任何JQuery移动内容(例如页面指示)。您发布的第二个布局是您将用于页面的布局。这与仅使用标准布局内容页场景有什么不同?在我看来,我也可以创建多个带有视图/标题的“布局页面”,并使用它们来继承我的视图。没有理由拥有“主布局”…或者我遗漏了什么?本质上,这只是为了方便,因为我可以包含整个网站需要的所有脚本/样式表,所以我不必在每个页面上都包含它们。不管你是把pagediv放在那里还是放在每个子布局中都不会有什么区别,真的。不确定是否有更好的方法,但这就是我最终选择的方法。谢谢
<!DOCTYPE html> 
<html> 
    <head>...</head>
    <body>
        @RenderBody()
    </body>
</html>
@{
    Layout = "~/Views/Shared/_LayoutMobileMaster.cshtml";
}
<div data-role="page" data-theme="b" position="fixed">
    <div data-role="header" data-position="fixed" data-theme="b" id="contentHeader">
        <a id="backBtn" data-direction="reverse" data-icon="back" class="ui-btn-left">Back</a>
        <h1>@ViewBag.Title</h1>
        <a id="logoutBtn" data-icon="gear" class="ui-btn-right">Logout</a>
    </div>
    <div data-role="content" data-theme="b">
        @RenderBody()
    </div>
</div>