1.ViewBag更灵活,它是MVC3中新加入的成员,与ViewData和TempData不同,它是一个dynamic类型的对象,并且内部规定了一些固定的属性如:
ViewBag.Title它就代码页面的标题,MVC3会自动把它绑定到<title></title>标记中。
从代码中我们不难发现,ViewBag不公是一个dynamic类型,而且它还把当前ViewData里的内容也追加了过来,那下面的使用是正确的。
public ActionResult Index()
{
ViewData["author"] = "张占岭";
}//@ViewBag.author //
比ViewData["author"]这种形式更简
在页面上直接这样输出:
@ViewBag.author //比ViewData["author"]这种形式更简洁
一、@Url.Content:是可以加载CSS和JS等文件,使用Url.Content可以为URL地址进行统一的管理和设置。
二、@RenderSection("Head", false):在模板页中我们会定义一些全局性的CSS,JS等文件,而与具体页面相关的CSS和JS文件及代码,我们可以保留在@RenderSection("Head", false)中,它能够让页面通过@section Head{}的形式,将个性化的代码呈现,其中参数false表示,具体页面可以不去实现这个section Head块。
三、@Html.Partial("_LogOnPartial"):分部视图,事实上就是MVC2中的ASCX视图,一些公用模块可以由它来呈现
四、@RenderBody():用来存储具体的页面内容,页面所有正文内容都被自己放到了@RenderBody()容器里
五、@RenderPage("~/Views/Shared/Foot.cshtml") :引入一个URL地址的页面。
六、_ViewStart.cshtml文件,它会在建立view时自己绑定到view中去,当然在view里通过下面语句设置自己的模板页:
@{
ViewBag.Title = "Test"; //设置页面标题
Layout = "~/Views/Shared/_GreenLayout.cshtml"; //设置页面模板,如果不设置本属性则使用_ViewStart.cshtml里的模板页
}
ViewBag.Title它就代码页面的标题,MVC3会自动把它绑定到<title></title>标记中。
从代码中我们不难发现,ViewBag不公是一个dynamic类型,而且它还把当前ViewData里的内容也追加了过来,那下面的使用是正确的。
public ActionResult Index()
{
ViewData["author"] = "张占岭";
}//@ViewBag.author //
比ViewData["author"]这种形式更简
在页面上直接这样输出:
@ViewBag.author //比ViewData["author"]这种形式更简洁
一、@Url.Content:是可以加载CSS和JS等文件,使用Url.Content可以为URL地址进行统一的管理和设置。
二、@RenderSection("Head", false):在模板页中我们会定义一些全局性的CSS,JS等文件,而与具体页面相关的CSS和JS文件及代码,我们可以保留在@RenderSection("Head", false)中,它能够让页面通过@section Head{}的形式,将个性化的代码呈现,其中参数false表示,具体页面可以不去实现这个section Head块。
三、@Html.Partial("_LogOnPartial"):分部视图,事实上就是MVC2中的ASCX视图,一些公用模块可以由它来呈现
四、@RenderBody():用来存储具体的页面内容,页面所有正文内容都被自己放到了@RenderBody()容器里
五、@RenderPage("~/Views/Shared/Foot.cshtml") :引入一个URL地址的页面。
六、_ViewStart.cshtml文件,它会在建立view时自己绑定到view中去,当然在view里通过下面语句设置自己的模板页:
@{
ViewBag.Title = "Test"; //设置页面标题
Layout = "~/Views/Shared/_GreenLayout.cshtml"; //设置页面模板,如果不设置本属性则使用_ViewStart.cshtml里的模板页
}