mvc3中Viewbag的范围是什么?我们如何在MVC中维护状态

时间:2012-12-13 17:52:59

标签: c# .net asp.net-mvc-3 entity-framework-4

  1. mvc3中Viewbag的范围是它仅在我们通过我的动作方法呈现的页面上可用。
  2. 我们如何在MVC中跨页面维护信息。假设我创建新员工,当我转到下一页时,我想要员工信息。
  3. 我们如何在MVC中保持状态。

2 个答案:

答案 0 :(得分:4)

  1. 视图包是httpcontext的一部分。它主要在控制器操作中设置并在视图中读取,但可以从http请求/响应中的mvc框架中的任何位置访问它。
  2. 网络没有状态,就像在富客户端应用中一样。要保持页面之间的值(或者更合适的是请求请求),您可以使用cookie,会话,查询字符串,请求正文(想想发布/发出请求)。
  3. 与#2相同。

答案 1 :(得分:1)

  1. ViewBag是一个动态表达式,可用于所有页面。 ViewBag中的数据是根据我们分配的内容而变化的内容。如果我们为ViewBag.items=itemlist;分配View,那么View将保持不变。我们可以根据需要将每页ViewBag放入尽可能多的数据,对于单个页面,我们可以拥有

    ViewBag.items=itemlist;
    ViewBag.table=usertable;
    
  2. 您可以通过将数据作为参数传递给方法来维护MVC中各页之间的信息,该方法是我们想要维护信息的View,如下所示:

    public ActionResult CreateEmployee(EmployeeModel emp)
    {
         //Add Employee to db
         ViewBag.employee=emp;
         RedirectToAction("MethodToCall","Controller");
    }
    
  3. 因此,下一页可以包含ViewBag

    中包含的员工信息

    或者,您也可以使用ViewData

    3]可以使用会话,cookie等维护状态