ASP.NET MVC 入门5、View与ViewData
view在MVC模式中与用户进行最直接的接触,它负责数据的呈现。这里要注意一点就是,view只是负责数据的呈现,所以我们应该要尽量让
view中不涉及业务逻辑的处理。
我们来添加一个Blog首页的view。在安装了ASP.NET MVC后,我们在添加新项目的时候可以看到有MVC的view模板:
注:如果你的是中文版
的VS,安装完后可能会出现找不到这个模板的现象,你可以参考
在中文版VS 08中安装MVC
这篇
文章设置一下。
其中MVC View Content Page是有母版页的。我们在Views/Home目录下添加一个MVC View Content
Page,并选择我们Views/Shared目录下的Site.Master母版页:
public
partial
class
Index : ViewPage
{
}
ASP.NET
MVC默认是使用WebForm来作为view的。所以我们看到新建的aspx页面继承自ViewPage,如果使用aspx页面作为ASP.NET
MVC的视图引擎,则所有的aspx页面都必须继承自ViewPage。我们再看一下ViewPage:
我们看到ViewPage继承自ASP.NET
WebForm的Page页,还实现了IViewDataContainer接口,同时还提供了一些Helper类的实例。我们可以使用ViewData
来从Controller中往view页面中传递数据。下面我们在HomeController中的Index
Action中取出Posts列表,然后在View中显示。我们先在Controller中取出数据,前面说过,为了方便,我们会直接使用
BlogEngine的Model层来作为我们这个4mvcBlog的Model。所以我们的代码如下:
public
ActionResult Index(
int
?
id)
{
ViewData[
"
Title
"
]
=
BlogSettings.Instance.Name;
List
<
IPublishable
>
posts
=
BlogEngine.Core.Post.Posts
.ConvertAll(
new
Converter
<
Post,
IPublishable
>
(
delegate
(Post p) {
return
p
as
IPublishable; }));
int
pageIndex
=
(id
!=
null
&&
id.HasValue
&&
id.Value
>
0
)
?
id.Value :
1
;
int
pageSize
=
Math.Min(posts.Count, BlogSettings.Instance.PostsPerPage);
if
((pageIndex
-
1
)
*
pageSize
+
pageSize
>
posts.Count)
{
&nbs
相关文档:
using System;
using System.Collections.Generic;
using System.Text;
using System.Configuration;
using System.Data.Common;
using System.Data;
namespace DownData.dal
{
public static class DBHelper
{
private stati ......
StringWriter sw = new StringWriter();
sw.WriteLine("访问购买率");
&nbs ......
首先,他们的运行机制不同。asp是属于一种解释型的框架!是解释执行的,是脚本。asp.net是编译型的!最终会编程二进制的机器代码。从这一点来说,asp.net执行效率上要比asp高!
其次,asp只允许使用js或者vbs。而asp.net则不一样,只要符合公共语言运行库规范的语言,都可以使用!从这一点上来说,asp在底层操作上较asp.ne ......
在Web程序中,我们知道,服务器端和IE客户端不是常连的,只有访问时才连接,一旦页面加载完后,这个连接就会断开,也就是说,访问页面A后,再访问页面B时,服务器端是不知道你已经访问过页面A了,甚至对于同一个页面,服务器端也不会去记录你的访问,每次都会重新实例话访问的页面。
这就带来一个问题,如果实现我访问了Lo ......