2016-09-14 9 views
0

ich die Projekte Namen und die Beschreibung der Supervisor erhalten möchten, wer online istAsp .net Mvc Sitzung

Mein Vorgesetzter Controller:

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); 
} 

Mein Supervisor-Modell:

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

Meine Ansicht:

My Home Controller:

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

Mein Vorgesetzter Dashboard-Aktion wird immer die E-Mail des Online-Benutzer aber denselben Code im Hinblick auf Projekt Aktion funktioniert nicht. Ich werde Ihnen für Ihre wertvolle Zeit sehr dankbar sein.

+0

Es würde hilfreich sein, wenn Sie Ihren Code so formatiert haben, dass er lesbar ist, gibt es überall eine zufällige Einrückung, die es zu einem PITA macht, das gelesen werden soll (was Sie von anderen erwarten). Ich habe es diesmal für Sie bearbeitet. – Igor

+0

Bitte schreiben Sie den Code, der die Weiterleitung zu 'ViewProject' macht. –

Antwort

0

Sie können den Wert eines Schlüssels nur in TempData ONE TIME lesen (daher der Name 'temp'). Es wird entfernt, sobald es gelesen wird. Ändern Sie die Verwendung von TempData in ViewBag oder Sitzung und es funktioniert.

+1

Es wird nicht nach dem Lesen entfernt. Es wird bis zum Ende der Bearbeitung der Anfrage überleben. –

+0

Jede Methode gibt ein Aktionsergebnis zurück, das eine vollständige 'Anfrage' darstellt. Sobald die erste Anfrage sie liest und die Ansicht zurückgibt, werden die Daten entfernt. Wenn Sie also in die zweite Aktion kommen, ist sie weg. –