zoukankan      html  css  js  c++  java
  • Asp.net Mvc Framework 五 (向View传值以及Redirect)

    ViewData与TempData属性来向View页传递对象
    上文中已经提到,使用ViewData可以将数据由Controller传递到View
    在前文中我们建立了EiceController类
    在本文的示例中我们将这个Controller改一下
    namespace MvcApplication2.Controllers
    {
        
    using System;
        
    using System.Collections.Generic;
        
    using System.Linq;
        
    using System.Web;
        
    using System.Web.Mvc;
        
    /// <summary>
        
    /// 记不记得前面讲过的,所有Controller都要继承于
        
    /// Controller类当然Controller有很多种,我们慢慢讲
        
    /// </summary>

        public class EiceController : Controller
        
    {
            
    public void Index() {
                ViewData[
    "ViewData"= "在这里显示ViewData";
                TempData[
    "TempData"= "在这里显示TempData";
                RenderView(
    "Index");
            }

            
    public void Index2() {
                RenderView(
    "Index");
            }

        }

    }
    我们将Index的参数移除,并提供了ViewData和TempData的赋值
    在Views/Eice/Index.aspx这个View中我们写以下代码
    1:<%=ViewData["ViewData"]%><br />
    2:<%=TempData["TempData"]%>
    注意上面的1.2不是行号...

    接下来我们运行工程
    访问http://localhost/Eice/Index
    可以看到运行得到以下

    1.在这里显示ViewData
    2.在这里显示TempData

    再访问http://localhost/Eice/Index2
    显示结果为
    1.
    2.在这里显示TempData
    这里1显示是的ViewData中的内容,2为TempData传递的内容
    我们可以看到
    ViewData只能在本Action中有效
    但是TempData可以类似于Session一样到其它页面仍然存在,但只限一页的访问(类似于Monorail中的Flash)
    TempData一般用于临时的缓存内容或抛出错误页面时传递错误信息
    Redirect方法跳转页面到其它的Controller/Action
    RedirectToAction(Action名);
    RedirectToAction(Action名, Controller名);
    RedirectToAction(RouteValueDictionary);
    在这里前两种都没有什么好说的RedirectToAction("About","Home");就是一种写法
    主要是第三种重载
    用户可以这样写
                System.Web.Routing.RouteData routeData = new System.Web.Routing.RouteData();
                routeData.Values.Add(
    "Action""About");
                routeData.Values.Add(
    "Controller""Home");
                RedirectToAction(routeData.Values);

    这样就可以完成页面跳转
    当然,也可以使用传统的Response.Redirect来完成页面的跳转

    Asp.net Mvc Framework 系列
  • 相关阅读:
    linux常用命令
    mysql 开发基础系列20 事务控制和锁定语句(上)
    sql server 性能调优之 资源等待 CXPACKET
    mysql 开发基础系列19 触发器
    mysql 开发基础系列18 存储过程和函数(下)
    mysql 开发基础系列17 存储过程和函数(上)
    sql server 性能调优之 资源等待PAGEIOLATCH
    mysql 开发基础系列16 视图
    mysql 开发基础系列15 索引的设计和使用
    sql server 性能调优之 当前用户请求分析 (1)
  • 原文地址:https://www.cnblogs.com/chsword/p/1100856.html
Copyright © 2011-2022 走看看