技术开发 频道

ASP.NET MVC应用系统软件架构基础入门

    【IT168 技术文档】从下图可以看出是首先通过view的请求,经过url导航到一个controller中,最终定位到一个action,在action中访问具体的model,获取数据之后,将数据放入ViewData或者是TempData中,然后通过action呈现到指定的view上。在view上可以定制显示的格式。

1
 

  1 知识点

  1.1 ViewData和TempData的区别

  ViewData只能在本Action内有效,在本Action中可以保存数据。

  TempData可以在Action跳转中使用,TempData的数据在服务器的Session中保存,但是只保留一个来回。也就是第一次跳转过去的时候还可以访问,后面就没有了。范围限制在同一个Controller中的不同Action传递数据。

public class HomeController : Controller
    {
        
public ActionResult Index2()
        {

            ViewData[
"ViewData"] = "我是VeiwData中的数据";
            TempData[
"TempData"] = "我是TempData中的数据";
            return View(
"Index2");
        }
        
public ActionResult  Index3(string name)
        {
            
            Models.ViewModels.UserViewModel userVM
=new Models.ViewModels.UserViewModel()
            {
                Name
=name
            };
            return View(userVM );
        }
    }

 

  在Index2和Index3两个View中分别加入下面的代码,就是显示一下ViewData和TempData中的内容。

  为了显示效果,在Index2的View中加入下面的代码。 这句直接呈现Index3的View,直接可以看到效果。

<div>
      
1 <%= ViewData["ViewData"] %><br />
  
2 <%=TempData["TempData"] %>
    
</div>
    
<br />
    
<%Html.RenderAction("Index3"); %>

 

  在Index3的View中加入下面的代码

<h2>ViewPage1</h2>
    
<%=Model.Name %>
    
<br />
    
<div>
      
1 <%= ViewData["ViewData"] %><br />
  
2 <%=TempData["TempData"] %>
    
</div>

 

  结果就是

1
 

  大家注意看上图中的两个红色框,第一个框中显示都有数据,第二个框中显示只有TempData中还有数据。

  

0
相关文章