码迷,mamicode.com
首页 > Web开发 > 详细

MVC基础知识-View

时间:2016-08-10 12:39:27      阅读:230      评论:0      收藏:0      [点我收藏+]

标签:

public ActionResult Index() 
        {
            ViewBag.Message = "Modify this template to jump-start your ASP.NET MVC application.";//展现到视图中数据
            //~/Views/Home/Index.cshtml
            return View(); //展现指定的视图,当没有指定视图名称时,默认是指向根目录下Views文件夹中,子文件夹名称为当前控制器名称Home,视图名称和当前Action名称一样
        }
ViewBag本质上是一个字典,它提供了一种View可以访问的动态数据存储,这用到了.NET4.0的动态语言特性,你可以给ViewBag添加任意的属性,这个属性是动态创建的,你不需要修改类的定义,就可以从View中访问

View和Action之间数据传递(前后台数据传递)

  弱类型 ViewData[""]

  动态型 ViewBag //dynamic

  动态类型Model
             后台:return View(data); //存入 ViewData.Model
             前台:Model //其实就是 WebViewPage.Model

 

public ActionResult Index()
{
Employee data = new Employee();
data.Name = "张三";
data.Age = 26;
return View(data);
}

 

1.@RenderBody()  //模板页里的占位符

2.@{

   Layout = "~/Views/Shared/MyLayout.cshtml";

   View.Title="Employee";

}

<p>子页所有html代码都将替换到 模板页的@RenderBody()处</p>

应用整体视图模板 - 多个"占位符"

 

3.模板页多个节:

   <footer>@RenderSection("Footer")</footer>

   子页面定义节点:

@section Footer{
           <b>这里是脚部区域!</b>
     }

模板页判断是否为布局节方法,IsSectionDeined

@if(IsSectionDefined("Footer")){
         @RenderSection("Footer");
   }else
   {
         <b>“子页面”没有Footer~</b>
   }

Razor 布局 – ViewStart

每个子页面都使用一个Layout指定布局。如果多个视图都用同一个布局就会产生冗余,修改维护麻烦。

_ViewStart.cshtml 可解决此问题

此文件代码优先于同目录及子目录下任何视图代码执行

View目录下自动添加的_ViewStart.cshtml

 

@{
          Layout = "~/Views/Shared/_Layout.cshtml";
    } 

其实我们的cshtml视图页面,在被访问的时候,也编译成了页面类,继承于:WebViewPage<T>

在View页面,添加代码

 

<div>@{Response.Write(this.GetType().Assembly.Location);}</div>

运行结果:C:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\vs\0282ae3e\58806453\App_Web_irdyebpa.dll

MVC基础知识-View

标签:

原文地址:http://www.cnblogs.com/xiaoheqin/p/5755897.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!