2016-09-14 44 views
0

我想要得到的項目名稱和主管的說明誰在線的ASP.NET MVC會議

我的上司控制器:

public ActionResult SupervisorDashboard() 
{ 
    var message = TempData["message"] as string; 
    var name = (from s in dc.Supervisors 
      where s.sup_email == message 
      select s.sup_fname).SingleOrDefault(); 
    ViewBag.username = name; 
    return View(); 
} 

public ActionResult ViewProject() 
{ 
    var message = TempData["message"] as string; 
    var name = (from s in dc.Supervisors 
       where s.sup_email == message 
       select s.sup_fname).SingleOrDefault(); 
    ViewBag.username = name; 

    var supid= (from s in dc.Supervisors 
       where s.sup_email==message 
       select s.sup_ID).SingleOrDefault(); 

    var projectdata = (from s in dc.OfferedProjects 
        where s.FK_sup_ID==supid 
         select s); 
    return View(projectdata); 
} 

我的導師型號:

public class SupervisorModel 
{ 
    public Supervisor supervisor { get; set; } 
    public OfferedProject offerproject { get; set; } 
} 

我查看:

@model IEnumerable<FYPManagment.Models.SupervisorModel> 
@using FYPManagment; 
@{ 
    List<OfferedProject> projectdata = (List<OfferedProject>)ViewData["projectdata"]; 
    ViewBag.Title = "ViewProject"; 
    Layout = "~/Views/Shared/_SupervisorDashboarLayout.cshtml"; 
} 

@foreach (var item in Model) 
{ 
    <tr> 
    <td>@item.offerproject.proj_title</td> 
    <td>@item.offerproject.proj_description</td> 
    <td> 
    <a href="#">Send Request</a> 
    </td> 

    </tr> 
} 

我的家庭控制器:

TempData["message"] = email; 
//Session["user"] = email; 
if (type == "supervisor") 
{ 
    return RedirectToAction("SupervisorDashboard", "Supervisor"); 
} 

我的導師儀表盤的動作也越來越在線用戶,但鑑於項目的動作相同代碼的電子郵件不工作。我將非常感謝你寶貴的時間。

+0

這將有助於如果你格式化你的代碼,所以它是清晰的,有隨機indentation使它成爲一個PITA通讀(這是你期望別人做)。這次我爲你編輯它。 – Igor

+0

請將重定向到'ViewProject'的代碼發佈。 –

回答

0

您只能在TempData ONE TIME中讀取密鑰的值(因此名稱爲'temp')。它被讀取後被刪除。將TempData的使用更改爲ViewBag或會話,它將起作用。

+1

一旦閱讀,它不會被刪除。它將繼續存在,直到處理請求結束。 –

+0

每種方法都會返回一個完整的「請求」的操作結果。一旦第一個請求讀取它並返回視圖,數據將被刪除,所以當你進入第二個動作時,它就消失了。 –