ASP.NET MVC5(2)视图
2015-08-09 14:42
579 查看
使用了ASP.NET MVC 3所引入的Razor视图引擎(Razor
view engine)。Razor视图模板文件使用.cshtml文件扩展名,并提供了一个优雅的方式来使用C#语言创建所要输出的HTML。用Razor编写一个视图模板文件时,将所需的字符和键盘敲击数量降到了最低,并实现了快速,流畅的编码工作流程。
前在控制器类中的Index方法返回了一个硬编码的字符串。更改Index方法返回一个View对象,如下面的示例代码:
上面的Index方法使用一个视图模板来生成一个HTML返回给浏览器。
添加下面的高亮标记代码。建立一个视图模板
同时,运行应用程序并在浏览器中浏览:HelloWorld控制器(http://localhost:xxxx/HelloWorld“)。在您控制器的Index方法中并没有做太多的工作,它只是执行了return View(),这个方法指定使用一个视图模板文件来Render返回给浏览器的HTML。因为您没有明确指定使用那个视图模板文件,ASP.NET MVC会默认使用\Views\HelloWorld文件夹下的Index.cshtml视图文件。下图显示了在视图文件中硬编码的字符串
"Hello from our View Template!"
为什么显示是这个效果呢?
在解决方案资源管理器里找到/Views/Shared文件夹,打开_Layout.cshtml文件。此文件被称为布局页面(Layout
page),并且其它所有的子页面,都共享使用这个布局页面。布局模板中提供了一个占位符,来占位各自不同页面的特殊部分。,RenderBody只是个占位符
完整的布局文件如下所示:
view engine)。Razor视图模板文件使用.cshtml文件扩展名,并提供了一个优雅的方式来使用C#语言创建所要输出的HTML。用Razor编写一个视图模板文件时,将所需的字符和键盘敲击数量降到了最低,并实现了快速,流畅的编码工作流程。
前在控制器类中的Index方法返回了一个硬编码的字符串。更改Index方法返回一个View对象,如下面的示例代码:
public ActionResult Index() { return View(); }
上面的Index方法使用一个视图模板来生成一个HTML返回给浏览器。
添加下面的高亮标记代码。建立一个视图模板
@{ Layout = "~/Views/Shared/_Layout.cshtml";//指定可以共享的布局页面 } @{ ViewBag.Title = "Index";//浏览器中显示的标题 } <h2>Index</h2> <p>Hello from our View Template!</p>
同时,运行应用程序并在浏览器中浏览:HelloWorld控制器(http://localhost:xxxx/HelloWorld“)。在您控制器的Index方法中并没有做太多的工作,它只是执行了return View(),这个方法指定使用一个视图模板文件来Render返回给浏览器的HTML。因为您没有明确指定使用那个视图模板文件,ASP.NET MVC会默认使用\Views\HelloWorld文件夹下的Index.cshtml视图文件。下图显示了在视图文件中硬编码的字符串
"Hello from our View Template!"
为什么显示是这个效果呢?
在解决方案资源管理器里找到/Views/Shared文件夹,打开_Layout.cshtml文件。此文件被称为布局页面(Layout
page),并且其它所有的子页面,都共享使用这个布局页面。布局模板中提供了一个占位符,来占位各自不同页面的特殊部分。,RenderBody只是个占位符
完整的布局文件如下所示:
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>@ViewBag.Title - Movie App</title><!-- 拼接而成的--> @Styles.Render("~/Content/css") @Scripts.Render("~/bundles/modernizr") </head> <body> <div class="navbar navbar-inverse navbar-fixed-top"> <div class="container"> <div class="navbar-header"> <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse"> <span class="icon-bar"></span> <span class="icon-bar"></span> <span class="icon-bar"></span> </button> @Html.ActionLink("MVC Movie", "Index", "Movies", null, new { @class = "navbar-brand" }) </div> <div class="navbar-collapse collapse"> <ul class="nav navbar-nav"> <li>@Html.ActionLink("Home", "Index", "Home")</li> <li>@Html.ActionLink("About", "About", "Home")</li> <li>@Html.ActionLink("Contact", "Contact", "Home")</li> </ul> @Html.Partial("_LoginPartial") </div> </div> </div> <div class="container body-content"> @RenderBody() 占位符 <hr /> <footer> <p>© @DateTime.Now.Year - My ASP.NET Application</p> </footer> </div> @Scripts.Render("~/bundles/jquery") @Scripts.Render("~/bundles/bootstrap") @RenderSection("scripts", required: false) </body> </html>
相关文章推荐
- ASP.NET MVC5(1)返回字符串+路由解析设置
- Asp.Netserver控制发展Grid实现(一个)UI转让
- jasperreport 生成报表三种方式,复制就可用。
- CasperJS 抓取京东商品详情页中的商品信息
- ASP入门(二)-创建Access数据库
- IIS发布ASP.NET MVC4.0教程
- ASP.NET MVC中如何在当前页面上弹出另外一个页面
- ASP通过ODBC连接SQL Server 2008数据库的方法
- asp.net 发送 xml post请求和接收 xml post请求时出现(500) 内部服务器错误(WebClient学习笔记)
- ASP.NET 5探险(8):利用中间件、TagHelper来在MVC 6中实现Captcha
- CasperJS API介绍(3)-- CasperJS utils module API介绍
- ASP入门(一)环境的搭建
- ASP.NET MVC RegisterRoutes浅解
- ABP(现代ASP.NET样板开发框架)系列之22、ABP展现层——导航栏设置
- 【asp.net】用户控件&自定义控件
- PHP模拟asp.net的StringBuilder类实现方法
- 从底层角度看ASP.NET-A low-level Look at the ASP.NET...
- ASP.NET(1)——三个对象
- PHP模拟asp中response类实现方法
- .NET/ASP.NET 4.5 Bundle组件(捆绑、缩小静态文件)