2016-09-14 10 views
0
私は

Visual Studio ASP .NETでのMVCセッション

MYスーパーバイザコントローラオンラインでのプロジェクト名と監督の説明を取得したい

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

コードを読みやすいようにフォーマットすると、どこにでもランダムな字下げが表示され、読めるようにすることができます(これは、他人がやりたいことです)。今回はあなたのために編集しました。 – Igor

+0

'ViewProject'にリダイレクトするコードを投稿してください。 –

答えて

0

TempData ONE TIME(したがって、「temp」という名前)でキーの値を読み取ることができます。それが読まれるとそれは除去される。 TempDataの使用をViewBagまたはセッションに変更すると動作します。

+1

一度読んだら削除されません。要求の処理が終了するまで存続します。 –

+0

各メソッドはアクションの結果を返します。これは完全な「要求」です。最初の要求がそれを読み取り、ビューを返すと、データは削除されます。したがって、2番目のアクションに入ると、そのデータはなくなります。 –