VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > 网站开发 > ASP.net 4.0教程 >
  • asp.net教程之ASP.NET MVC 数据呈现(ViewData)

ASP.NET MVC 数据呈现(ViewData)

在ASP.NET MVC应用程序中,Controllers负责数据的读取而Views负责界面的呈现,在界面的呈现中Views通常不进行数据的读取和逻辑运算,数据的读取和逻辑运算都交付给Controllers负责。为了能够方便的将Controllers与Views进行整合并在Views中呈现Controllers中的变量,可以使用ViewData整合Controllers与Views从而进行数据读取和显示。
在ASP.NET MVC应用程序的Views中,其值并不是固定的,而是通过Controllers传递过来的,在Controllers类文件中的页面实现代码中,可以需要使用ViewData进行值的传递,BetaControllers.cs中Index.aspx实现的Index()的方法示例代码如下所示。
    [HandleError]
    public class BetaController : Controller
    {
        public ActionResult Index()                                                                                              //实现Index方法
        {
            ViewData["beta"] = "这是一个ViewData字符串";                                                 //使用ViewData
            return View();                                                                                                              //返回视图
        }
    }
上述代码使用ViewData存储数据,ViewData的声明和赋值方式与Session对象相同,直接通过编写ViewData[键值的名称]=XXX进行相应的键值的赋值。如果需要在页面中进行相应的值的呈现,只需要输出ViewData[键值的名称]即可。
在ASP.NET MVC应用程序中,字符输出都需要呈现在Views视图中,在Controllers中进行ViewData变量的赋值,就需要在Views中输出相应的变量,BetaControllers.cs中的Index()方法实现的是Index.aspx页面,在Index.aspx可以使用ViewData["beta"]变量,示例代码如下所示。
    <h2>About Us</h2>
    <p>
        <span style="color:Red">这是一个测试页面</span><br/>
        <span style="color:Green"><%=ViewData["beta"] %></span>
    </p>
上述代码中在运行后会输出ViewData["beta"]变量中存储的值,运行后如图17-19所示。

图17-19  输出ViewData
ViewData不仅可以为某个具体的值,ViewData还可以是一个泛型变量,示例代码如下所示。
    [HandleError]
    public class BetaController : Controller
    {
        public ActionResult Index()
        {
            List<string> str = new List<string>();                                                                                //创建泛型变量
            str.Add("str字符串1<hr/>");                                                                                               //添加成员
            str.Add("str字符串2<hr/>");                                                                                               //添加成员
            str.Add("str字符串3<hr/>");                                                                                               //添加成员
            str.Add("str字符串4<hr/>");                                                                                               //添加成员
            ViewData["beta"] = str;                                                                                                        //赋值ViewData
            return View();                                                                                                                        //返回视图
        }
    }
在为ViewData赋值泛型变量后,在相应的View页面中也可以输出ViewData的值,示例代码如下所示。
    <h2>About Us</h2>
    <p>
        <span style="color:Red">这是一个测试页面</span><br/>
        <% foreach(string str in ViewData["beta"] as List<string>) %>
        <% = str%>
    </p>
上述代码通过使用foreach进行ViewData变量中相应健值的值的遍历,运行后如图17-20所示。

图17-20  遍历ViewData变量的值
使用List类能够将数据库中的数据存放在泛型列表类中,开发人员能够将数据库中的数据遍历并存放在Controllers类文件中的页面实现的类的ViewData变量中,当需要遍历数据进行呈现时,例如新闻列表或者是论坛列表等,可以通过遍历ViewData变量的值遍历输出数据库中的数据。

相关教程