使用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

{
5
public void Run()
6
{
7
ViewData["HelloText"] = "Hello World!";
8
}
9
}
10
当浏览器请求“http://www.yoursite.com/home.ashx”时,控制器类的Run()方法将被调用。
2

3

4



5

6



7

8

9

10

控制器类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:
2

3

4

5

6

7

1
<html>
2
<body>
3
$[HelloText]
4
</body>
5
</html>
6
在模板home.htm中,包含了<html>和<body>标签,这是允许的;但不包含这两个标签也没问题,因为master.htm主模板中已经定义这两个标签,只有位于<body></body>标签中的home.htm内容会被加载。
2

3

4

5

6

最后,下面是浏览器中看到内容:
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

2

3

4

5

6

7
