首页 > 代码库 > MVC中的分部视图

MVC中的分部视图

背景:

       项目的工期马上就要到了,由于后台封装的很好,我们只需要用心熟悉框架,接下来后台的工作就是简单的代码工作了。原本以为最困难的时期已经过去,可没想到前台才是最困难的。

       B/S的基础十分薄弱,加上学过之后没有做过BS的项目,第一次上手还真的是蛮痛苦的。霞姐说要界面灵活,那种在html里加onclick的时代已经过去。今天就来说说界面灵活之一——分部视图和Razor语法。


分部视图:

        在一定程度上,分部视图与用户控件十分类似。他们都可以提高内容或代码的可重用性,但不同之处是,分部视图不需要使用ViewState、PostBacks, and Events 等技术管理状态。分部视图与普通视图的语法没有区别。

优点:

1)简单

2)可重用

3)分工合作

首先,创建一个分部视图。在项目中右键——添加视图,如图:

技术分享

在介绍分部视图如何使用之前,我们先介绍一种视图引擎,就是在创建分部视图时选择的Razor。

Razor:

   含义     

      一个模块解决方案,用来优化HTML的生成,主要集中在代码方面。Razor并不是一个新的编程语言,而是在让程序员只使用现有的C#/VB(或其它)编程语言知识就能使用Razor,我们只不过在你选择的编程语言里,提供一个非常棒的基于模板生成HTML的标记语法。它拥有十分智能的感应输入提示,用任何文本编辑器都可以进行编写。可以支持对视图执行单元测试。


在C#中,几个简单的语法规则:

代码封装在@{...}

变量和函数以@开头

语句以分号结尾

 @*定义变量strMessage*@
@{
    var str="Hello World!";
    var Message = " Razor";
    var strMessage=str + Message;
    }

@*利用a标签显示*@
<a>@strMessage</a>

显示结果:

技术分享

      Razor 网页可被描述为带有两种内容的 HTML 页面:HTML内容和 Razor代码。使用 Razor语法ASP.NET 网页拥有特殊的文件扩展名 cshtml使用C# 的Razor 语法)或者vbhtml(使用VB的 Razor)


      对Razor有了简单了解之后,我们来看分部视图的简单显示问题。在普通视图Index中,调用分部视图。


     创建Controller,并建立AddExamPartial分部视图。

 // GET: /Exam/
        //对应普通视图
        public ActionResult Index()
        {
            return View();
        }

        //对应AddExamPartial分部视图
      public PartialViewResult AddExamPartial()
        {
            return PartialView("AddExamPartial");
        }


把它们放到一个文件夹下,方便管理。


技术分享


在普通视图Index中,增加调用语句。

     @{Html.RenderPartial("../../Views/Exam/AddExamPartial");}


添加考试的页面就是一个分部视图,已经显示出来了,我们还可以更好的复用它。


技术分享

总结:

      以上只是简单的显示分部视图,并未涉及到传值等数据共享。此外,过多分部视图的使用会增加服务器的延迟,要控制得当。在你遇到十分困难的点时,那便是你薄弱的地方,抓住机会,这会是你收获最大的时候。


MVC中的分部视图