section

新的Layout布局系统

好久不见. 提交于 2020-01-02 01:56:02
要点: A.Layout属性:等同于原来的MasterPageFile属性. B.@RenderBody()方法:直接渲染整个View到占位符处,而不需要原来所使用的<asp:Content />. C.@RenderPage()方法:渲染指定的页面到占位符处. D.@RenderSection方法:声明一个占位符,和原来的<asp:ContentPlaceHolder />功能类似. E.@section标记:对@RenderSection方法声明的占位符进行实现,和原来的<asp:Content />功能类似. 1.@RenderBody()方法的使用 首先在~/Views/Shared/下创建一个名为_MyLayout.cshtml的LayoutPage文件,并将默认的内容替换为如下: <!DOCTYPE html> <html> <head> <title>@ViewBag.Title</title> </head> <body> <div> 开始渲染Body<br /> @RenderBody() 渲染Body结束<br /> </div> </body> </html> 然后打开在~/Views/Home/Index.cshtml文件并替换为如下的内容: @{ ViewBag.Title = "首页"; } <div> 这里就是渲染Body啦. </div>

@RenderBody、@RenderSection、@RenderPage、Html.RenderPartial、Html.RenderAction的作用和区别

妖精的绣舞 提交于 2020-01-02 01:53:28
1. RenderBody 在Razor引擎中没有了“母版页”,取而代之的是叫做“布局”的页面(_Layout.cshtml)放在了共享视图文件夹中。在这个页面中,会看到标签里有这样一条语句: @RenderBody() 其实它的作用和母版页中的服务器控件类似,当创建基于此布局页面的视图时,视图的内容会和布局页面合并,而新创建视图的内容会通过布局页面的@RenderBody()方法呈现在标签之间。 这个方法不需要参数,而且只能出现一次。 2. RenderPage 从名称可以猜出来这个方法是要呈现一个页面。比如网页中固定的头部可以单独放在一个共享的视图文件中,然后在布局页面中通过这个方法调用,用法如下: @RenderPage(“~/Views/Shared/_Header.cshtml”) 带参数 @RenderPage(“~/Views/Shared/_Header.cshtml”,new{parm="my",parm2="you") 调用页面获取参数: (刚学习MVC,不懂这句话是什么意思:不是调用页面这样调用,参数要给谁使用呢?) //获取 RenderPage() 传递过来的参数 @PageData["param"] 3. RenderSection 布局页面还有节(Section)的概念,也就是说,如果某个视图中定义了一个节,那么可以把它单独呈现出来,用法如下: /

@RenderBody、@RenderSection、@RenderPage、Html.RenderPartial、Html.RenderAction的作用和区别

徘徊边缘 提交于 2020-01-02 01:52:53
1. RenderBody 在Razor引擎中没有了“母版页”,取而代之的是叫做“布局”的页面(_Layout.cshtml)放在了共享视图文件夹中。在这个页面中,会看到标签里有这样一条语句: @RenderBody() 其实它的作用和母版页中的服务器控件类似,当创建基于此布局页面的视图时,视图的内容会和布局页面合并,而新创建视图的内容会通过布局页面的@RenderBody()方法呈现在标签之间。 这个方法不需要参数,而且只能出现一次。 2. RenderPage 从名称可以猜出来这个方法是要呈现一个页面。比如网页中固定的头部可以单独放在一个共享的视图文件中,然后在布局页面中通过这个方法调用,用法如下: @RenderPage(“~/Views/Shared/_Header.cshtml”) 带参数 @RenderPage(“~/Views/Shared/_Header.cshtml”,new{parm="my",parm2="you") 调用页面获取参数: //获取 RenderPage() 传递过来的参数 @PageData["param"] 3. RenderSection 布局页面还有节(Section)的概念,也就是说,如果某个视图模板中定义了一个节,那么可以把它单独呈现出来,用法如下: @RenderPage(“~/Views/Shared/_Header.cshtml

Linux内核中__init, __initdata, __initfunc(), asmlinkage, ENTRY(), FASTCALL()等作用

岁酱吖の 提交于 2019-12-25 01:56:05
在阅读Linux内核是,常见到这些宏 __init, __initdata, __initfunc(), asmlinkage, ENTRY(), FASTCALL()等等。它们定义在 /include/linux/init.h 和 /include/linux/linkage.h 以及其他一些.h 文件中。 1. __init 位置:/include/linux/init.h 定义: #define __init __attribute__ ((__section__ (".init.text"))) 注释:这个标志符和函数声明放在一起,表示gcc编译器在编译时,需要把这个函数放在.text.init Section 中,而这个Section 在内核完成初始化之后,就会被释放掉。 举例:asmlinkage void __init star_kerne(void) { ... } 2. __initdata 位置:/include/linux/init.h 定义:#define __initdata __attribute__ ((__section__ (".init.data"))) 注释:这个标志符和变量声明放在一起,表示gcc编译器在编译时,需要把这个变量放在.data.init Section中,而这个Section 在内核完成初始化之后,会释放掉。 举例:static

linux初始化宏__init, __exit

一世执手 提交于 2019-12-25 01:55:06
我们在内核中经常遇到初始化函数是这样定义的:static int __init init_func(); ,与普通函数相比,定义中多了__init。那么,__init是什么意思呢?还有与其匹配的__exit呢? __init* macro __init定义在:include/linux/init.h #define __init __attribute__ ((__section__ (".init.text"))) #define __initdata __attribute__ ((__section__ (".init.data"))) It tells the compiler to put the variable or the function in a special section, which is declared in vmlinux.lds. init puts the function in the ".init.text" section and initdata puts the data in the ".init.data" section. 译文:__init宏告知编译器,将变量或函数放在一个特殊的区域,这个区域定义在vmlinux.lds中。__init将函数放在".init.text"这个代码区中,__initdata将数据放在".init

内核中的宏定义__init、__initdata和__exit、__exitdata

好久不见. 提交于 2019-12-25 01:54:15
__init、__initdata和__exit、__exitdata的定义位于<kernel/include/linux/init.h> 1 /* These are for everybody (although not all archs will actually 2 discard it in modules) */ 3 #define __init __section(.init.text) __cold notrace 4 #define __initdata __section(.init.data) 5 #define __initconst __constsection(.init.rodata) 6 #define __exitdata __section(.exit.data) 7 #define __exit_call __used __section(.exitcall.exit) 8 9 10 #define __exit __section(.exit.text) __exitused __cold notrace 11 12 /* For assembly routines */ 13 #define __HEAD .section ".head.text","ax" 14 #define __INIT .section ".init.text",

C# 创建INI文件,写入并可读取。

冷暖自知 提交于 2019-12-23 01:33:53
基于C#winform设计。 首先创建一个类,我命名为IniFiles。并引入命名空间using System.Runtime.InteropServices; 接着,声明API函数    [DllImport("kernel32")] private static extern long WritePrivateProfileString(string section, string key, string val, string filePath); [DllImport("kernel32")] private static extern int GetPrivateProfileString(string section, string key, string def, StringBuilder retVal, int size, string filePath); 写入INI函数方法 /// <summary> /// 写入INI文件 /// </summary> /// <param name="Section">项目名称(如 [TypeName] )</param> /// <param name="Key">键</param> /// <param name="Value">值</param> public void IniWriteValue(string

delphi中ini 文件操作记要(1): 使用 TIniFile

断了今生、忘了曾经 提交于 2019-12-19 06:15:04
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Button1: TButton; Button2: TButton; Button3: TButton; Button4: TButton; Button5: TButton; Button6: TButton; Button7: TButton; procedure FormCreate(Sender: TObject); procedure FormDestroy(Sender: TObject); procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure Button3Click(Sender: TObject); procedure Button4Click(Sender: TObject); procedure Button5Click(Sender: TObject); procedure Button6Click(Sender: TObject);

Aspose.words一 DOM结构

牧云@^-^@ 提交于 2019-12-18 09:52:20
2.文档对象模型概述 2.1 DOM介绍 Aspose.Words的文档对象模型(以下简称DOM)是一个Word文档在内存中的映射,Aspose.Words的DOM可以编程读取、操作和修改Word文档的内容和格式。理解DOM的结构和相应的类型,是使用Aspose.Words灵活编程的基础,这一点非常重要。下面的一个Word文档例子和其结构如下图所示: 当上述文档被Aspose.Words的DOM读取时,会创建如下结构的树形对象: 从上图的结构和对应的Word文档,我们可以看到大概的DOM中相关对象的结构,有了这些基本概念,就可以很流程的操作Word文档了。Document, Section, Paragraph, Table, Shape, Run 以及图中的其他椭圆形的都是Aspose.Words对象,这些对象具有树形的层级结构,图中的注释同样说明这些文档对象树中的对象具有多个属性。 Aspose.Words中的DOM有以下特点: 1.所有的节点(node)类最终都继承于Node类,它是Aspose.Words DOM的基本类型。 2.节点可以包含(嵌套)其他节点,例如Section和Paragraph都继承自CompositeNode类,而CompositeNode类来源与Node类。 2.2 Node类型 当Aspose.Words读取Word文档到内存中时

python configparser

孤街醉人 提交于 2019-12-17 18:43:07
configparser模块操作 config.ini 配置文件 [user] user_name = root password = 1234 money = 26985.4578 [connect] ip = 127.0.0.1 port = 8888 [mysql] ip = 192.168.11.122 port = 3369 [mysql_connect] is_true = true is_false = false [redis] name = 192.168.1.22 py 文件 import configparser # 生成 ConfigParser对象 config = configparser.ConfigParser() # 读取配置文件 file_name = 'config.ini' config.read(filenames=file_name, encoding='utf-8') # 获取所有节点sections, 以列表形式返回config parser对象的所有节点信息 all_sections = config.sections() print(all_sections) # ['user', 'connect', 'mysql', 'mysql_connect'] # 获取指定节点的的所有配置信息