使用ProMesh.net创建的Web程序都是基于控制器的(Controller-based)。 这意味着浏览器发起一个请求时,有一个对应的控制器类被实例化,同时有一个或多个控制器的方法被调用,然后决定哪个视图模板将被解析并渲染。渲染的结果将被发送给浏览器客户端。
下面用一个简单的控制器类作为例子:
控制器类Home添加的了两个Attribue,用来定义如何渲染视图模板:[Layout]定义了主模板;[View]定义了内嵌的模板。
下面是控制器类Home对应的两个模板代码:
master.htm:
最后,下面是浏览器中看到内容:
Hello World
对应的Html代码:
下面用一个简单的控制器类作为例子:
1
[Layout(
"
master
"
)]
2
[View(
"
home
"
)]
3
public
class
Home : PageController
4![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
{
5
public void Run()
6![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
7
ViewData["HelloText"] = "Hello World!";
8
}
9
}
10
当浏览器请求“http://www.yoursite.com/home.ashx”时,控制器类的Run()方法将被调用。
![](/Images/OutliningIndicators/None.gif)
2
![](/Images/OutliningIndicators/None.gif)
3
![](/Images/OutliningIndicators/None.gif)
4
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](/Images/OutliningIndicators/ContractedBlock.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/b854634c0904529d4018c4c3336be836.gif)
5
![](/Images/OutliningIndicators/InBlock.gif)
6
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/b854634c0904529d4018c4c3336be836.gif)
7
![](/Images/OutliningIndicators/InBlock.gif)
8
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
9
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
10
![](/Images/OutliningIndicators/None.gif)
控制器类Home添加的了两个Attribue,用来定义如何渲染视图模板:[Layout]定义了主模板;[View]定义了内嵌的模板。
下面是控制器类Home对应的两个模板代码:
master.htm:
1
<
html
>
2
<
head
><
title
>
My first ProMesh.NET page
</
title
></
head
>
3
<
body
>
4
$[_VIEW_]
5
</
body
>
6
</
html
>
7
home.htm:
![](/Images/OutliningIndicators/None.gif)
2
![](/Images/OutliningIndicators/None.gif)
3
![](/Images/OutliningIndicators/None.gif)
4
![](/Images/OutliningIndicators/None.gif)
5
![](/Images/OutliningIndicators/None.gif)
6
![](/Images/OutliningIndicators/None.gif)
7
![](/Images/OutliningIndicators/None.gif)
1
<
html
>
2
<
body
>
3
$[HelloText]
4
</
body
>
5
</
html
>
6
在模板home.htm中,包含了<html>和<body>标签,这是允许的;但不包含这两个标签也没问题,因为master.htm主模板中已经定义这两个标签,只有位于<body></body>标签中的home.htm内容会被加载。
![](/Images/OutliningIndicators/None.gif)
2
![](/Images/OutliningIndicators/None.gif)
3
![](/Images/OutliningIndicators/None.gif)
4
![](/Images/OutliningIndicators/None.gif)
5
![](/Images/OutliningIndicators/None.gif)
6
![](/Images/OutliningIndicators/None.gif)
最后,下面是浏览器中看到内容:
Hello World
对应的Html代码:
1
<
html
>
2
<
head
><
title
>
My first ProMesh.NET page
</
title
></
head
>
3
<
body
>
4
Hello World!
5
</
body
>
6
</
html
>
7
![](/Images/OutliningIndicators/None.gif)
2
![](/Images/OutliningIndicators/None.gif)
3
![](/Images/OutliningIndicators/None.gif)
4
![](/Images/OutliningIndicators/None.gif)
5
![](/Images/OutliningIndicators/None.gif)
6
![](/Images/OutliningIndicators/None.gif)
7
![](/Images/OutliningIndicators/None.gif)