• MVC3 模板页页预留Section


    一、模板页

           Razor出现后我们就可以选择不再使用asp.net master 模板页。取而代之的是cshtml razor的模板文件。用法个人认为还是和master模板页类似。但在mater模板页的原有功能上有了进一步扩展,更方便开发。比如只要在View文 件夹内加入_ViewStart.cshtml文件,我们就无需在每一个具体的View页面引入模板页。减少View页面内的重复代码。具体的可以建立一 个MVC3 Application 选择razor模板,VS会自动建立上述机制。这里值得提出的是@RenderSection方法。可以让我们在模板页预设一个区域,未来给继承该模板页 的View使用。具体请看以下操作:

       在MVC3.0 shared文件夹下_Layout.cshtml这个模板文件内加入以下代码:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <!DOCTYPE html>
    <html>
    <head>
        <title>@ViewBag.Title</title>
        <link href="@Url.Content("~/Content/Site.css")" rel="stylesheet" type="text/css" />
        <script src="@Url.Content("~/Scripts/jquery-1.4.4.min.js")" type="text/javascript"></script>
        @RenderSection("Head", required: true)
    </head>
    <body>
        <div class="page">

    以上代码第7行,预留出一个Head的section。 熟悉模板页的人,应该明白该处是预留是给未来具体的View页面自定义特定js/css使用的。这个View我们就用默认的Home底下的Index来举例。打开index.cshtml 写入以下代码

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    @{
        ViewBag.Title = "Home Page";
    }
    <h2>@ViewBag.Message</h2>
    @section Head{
        <script type="text/javascript">
            $(function () {
                alert("hello jquery");
            });
        </script>
    }

    该View已经集成了模板页,这里只是填充模板页内的Head section这时就可以加入我们的针对每个view页面的js或者CSS了。至此达到共性外的个性。

        二、Razor语法:


        文章开头就已经提到了,个人认为Razor语法的便捷在于razor自动帮助我们闭合C#或VB.NET在html的语法。请看以下代码:

    MVC3 模板页页预留Section - qiuguangchun - sandea的个人主页
     

    已经给出注释了,仔细阅读并不难理解。您应该也能体会到如果将razor换成asp.net的<%= %>或者<%: %>写法,其实是很“痛苦”的。至于razor的其他用法官方网站已经写的很全面了,比如razor的已经为我们 HTML Encod防止XSS攻击、html中字符串中出现×××@×××.com这样的文本,Razor是可以自动识别成Email格式而不是Razor的关键字。

     

        三、 Razor 语法智能提示:


         该智能提示与VS内的一样,只需Ctrol + J 即可调出。具体的请看下图:

    MVC3 模板页页预留Section - qiuguangchun - sandea的个人主页
     
     

    您是否和我一样也打算在Web开发中全面使用Razor呢?

  • 相关阅读:
    JSON 之 SuperObject(10): Merge、Clone、ForcePath
    JSON 之 SuperObject(5): Format 与转义字符
    语法基础: 使用不同的数据类型标记数组
    JSON 之 SuperObject(9): TSuperType
    JSON 之 SuperObject(12): TSuperEnumerator、TSuperAvlIterator、ObjectFindFirst...
    JSON 之 SuperObject(7): 可以省略的双引号
    JSON 之 SuperObject(11): TSuperTableString、TSuperAvlEntry
    JSON 之 SuperObject(13): 关于 SO 与 SA 函数
    JSON 之 SuperObject(8): 关于乱码的几种情况 向 Henri Gourvest 大师报告
    安装万能五笔时会自动安装copyso
  • 原文地址:https://www.cnblogs.com/sandea/p/3289890.html
Copyright © 2020-2023  润新知