在ASP.NET Razor中,母版页的概念与WebForms中的Master Page相似,但实现方式略有不同。在Razor中,你可以使用_ViewStart.cshtml文件来定义默认的布局页,并使用Layout属性在每个页面中指定布局。

以下是一个简单的例子,演示如何使用布局页:

1. _ViewStart.cshtml

   在Views文件夹下创建_ViewStart.cshtml文件,用于定义默认的布局页:
   @{
       Layout = "~/Views/Shared/_Layout.cshtml";
   }

2. _Layout.cshtml

   在Views/Shared文件夹下创建_Layout.cshtml文件,作为布局页:
   <!DOCTYPE html>
   <html lang="en">
   <head>
       <meta charset="utf-8" />
       <title>@ViewBag.Title - My ASP.NET Application</title>
   </head>
   <body>
       <div id="header">
           <h1>My Website</h1>
       </div>
       
       <div id="main-content">
           @RenderBody()
       </div>
       
       <div id="footer">
           <p>&copy; @DateTime.Now.Year - My Website</p>
       </div>
   </body>
   </html>

3. 具体页面

   在其他页面中,你可以使用@{ ViewBag.Title = "Page Title"; }来设置页面标题,并使用Layout属性指定布局:
   @{
       ViewBag.Title = "Home";
       Layout = "~/Views/Shared/_Layout.cshtml";
   }
   
   <h2>Welcome to the Home Page</h2>
   <p>This is the content of the home page.</p>

在这个例子中,_Layout.cshtml定义了整个网站的布局,包括头部、主体和底部。每个具体的页面通过设置ViewBag.Title来指定页面标题,并通过Layout属性指定使用的布局。

请注意,具体页面中的@RenderBody()表示渲染具体页面的内容,该内容会替换布局页中的@RenderBody()位置。

这是一个简单的例子,实际中可以根据需要进行更复杂的布局设计。


转载请注明出处:http://www.zyzy.cn/article/detail/14887/ASP.NET Razor 标记