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 系列
  • 相关阅读:
    Ubuntu linux安装ssh server
    Ubuntu下PHP配置与安全加强
    ubuntu 终端中文显示乱码问题!
    LINUX命令行如何查看memcache运行状态?
    CI system/libraries/Cache/drivers/memcached.php 兼容 memcache,memcached扩展
    php操作memcache的使用测试总结
    收集国内速度快的Debian或者Ubuntu源
    网易163的 Ubuntu 软件源
    Memcache命令及参数用法
    Memcache所有方法及参数详解
  • 原文地址:https://www.cnblogs.com/chsword/p/1100856.html
Copyright © 2011-2022 走看看