8

这个问题接近于:ASP.NET MVC 应用程序中的 jQuery Mobile 布局,但我正在尝试找到最佳实践,因为我认为在每个视图中重新键入页眉和页脚效率不高。肯定有更好的办法。

因此,我正在寻找使 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>

在我学习的过程中,我开始遇到问题,后来才知道你不能真正在主支付中加载其他“页面”。所有继承的视图都必须是该主 Jquery 移动页面的一部分。坏的。2)

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

这将起作用,但这也意味着我必须在每个视图上重新键入页眉和页脚。

各位可以分享一下你们的看法吗?让我能够在我的布局中加载多个 Jquery Mobile“页面”而又不必到处重复页眉/页脚的最佳方法是什么?...我的意思是如果一个人必须在某个时候改变怎么办?

先感谢您。

4

1 回答 1

2

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

<!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>

当然,如果您的每个页面都有不同的页眉/页脚,那么这不是很实用;您还不如取消中间布局并将页眉/页脚直接放在每个视图中。但是,如果您有不同的多个页面集,其中每个集都需要具有特定的外观,那么我认为这会非常有用。

于 2012-07-26T14:16:48.137 回答