asp.net mvc 中 执行完第一个Action后 在页面显示值,再执行完第二个Action的时候  第一个Action的值就没有了! 难道如果这个要显示的值要一直显示的话,那每个Action中都要ViewData一次?或者TempData一次? 有没有更好的办法解决?就是类似Asp.net WebForm里      Page_Load 事件里绑定值一样! 只需要绑定一次!我通过一个笨方法解决了,但是觉得不是很好!
就是 override Controller 的OnResultExecuting方法!
总觉得这样不大合理! 望各位朋友帮我解决这个问题!

解决方案 »

  1.   


      绑定值就会有 啊!
       例如我在名为 Index 的 Action 里 ViewData["data"] = "Hava Data";
       在页面显示, 然后我在 用一个Html.ActionLink 点击进入 名为 Two 的Action的之后
    页面 显示的 Hava Data 就没了!  我是想让 Hava Data 不管执行了多少个Action还在页面显示!
      

  2.   

        又 在     Controller 的构造里写!不知这样是否好一点
      

  3.   

    ActionLink相当于<a href="" />页面重新生成了,当然没了,本来mvc就是需要自己保持页面控件的状态的。
    可以考虑用ajax来调用Action,这样页面没有提交,ViewData就不会变化
      

  4.   

    对于MVC 目前仅限于 理论阶段...
      

  5.   


       过多的Ajax 操作会降低效率吧!  
      

  6.   

    asp.net mvc不是asp.net webform。你使用它,失去的就是状态机制,推给你自己去做一套。难道微软的ScottGu之类的人故意隐瞒了这个必须反复强调的说明?而你竟然问“状态怎么丢失了怎办”这种问题。这不就是asp.net mvc要求你自己负责处理的嘛!
      

  7.   


    不是理论,在java阵营多年前就有许多打着这个旗号的web开发框架。java程序员到微软的开发工具中找饭碗,而微软只要把原来的工具中拿出九牛一毛的东西来重新包装一下就能让其感觉上手方便,何乐而不为?
      

  8.   


    sp 现身啦!  你说的有道理,因为我是刚看MVC所以不是很懂! 
       所以自己的写法不敢确定是否 合理,出来问问大家!
        我用Controller的构造来保持值!
      

  9.   

    有点看不懂楼主的问题,执行一个Action就相当于跳转到一新的页面,你在前一个页面中绑定的值,和第二个页面能有什么关系,怎么能叫它再显示出来?就算在WebForm中,你在index.aspx中绑定的值,跳转到two.aspx后这些值怎么可能还在呢?
      

  10.   


      杨老师,我的意思是,在一个页面里会执行多个Action 而且多个Action都是跳转到这个页面,例如Index()这个Action里绑定的值是这个页面一直要显示的值!如果执行了Two()这个Action,并且Two()Action里我没有绑定这个页面一直要显示的值的话,就会不显示!  
           如果我这个也面要执行N个Action的话,不可能每个Action里都绑定一变页面一直要用的值吧!
    我想过在Controller的OnResultExecuting()方法里写,也试过在Controller的构造函数里绑定!(效果是实现了!呵呵!)
    因为我是刚学MVC不知道有没有什么更高效率的方法!