2013-02-25 77 views
1

以下給出的是我的代碼,當我在窗體上登錄時,會發生錯誤是「對象引用未設置爲對象的實例」。實際上,im在母版頁中顯示數據。如何在asp.net中使用viewdata顯示數據mvc

母版頁: -

 <%@ Master Language="C#" Inherits="System.Web.Mvc.ViewMasterPage" %> 
     <%@ Import Namespace="ClientProj.Models" %> 

       <%foreach(var m in (IEnumerable<user_master>)ViewData["email"]) 
        { %> 
           <%=m.email %> 
        <%} %> 

和我的控制器: -

  public ActionResult Index() 
      { 

       ViewData["email"] = from p in db.user_master select p; 

       return View(); 
     } 
    [HttpPost] 
    public ActionResult Index(user_master log) 
    { 


     ViewData["email"] = from p in db.user_master where              
          p.user_id==Convert.ToInt32(Session["user"]) select p; 

     var ss = from p in db.user_master 
       where p.username == log.username && 
       p.user_password == log.user_password 
       select p; 

     if (ss.Count() > 0) 
     { 

      Session["id"] = ss.First().user_id; 
      Session["user"] = ss.First().username; 
      return RedirectToAction("Home"); 
     } 
     else 
     { 

      return RedirectToAction("index"); 
     } 


     return View(); 
    } 

回答

2

你在一個方法中設置的ViewData在你的控制器,而是試圖在母版頁讀出來任何頁面。這意味着你需要確保你所做的每一個動作都設置了Viewdata,這實在是一個糟糕的主意。

這裏可能發生的事情是,你有另一個不設置ViewData的操作,比如Index的HttpPost版本。

相關問題