他のすべてのコントローラーが継承する ApplicationController.cs を作成しました。このコントローラーを使用して、DB からユーザーの氏名をキャプチャし、ViewBag に設定して、layout.cshtml でキャプチャしようとしています。
また、ユーザーのログインをキャプチャする Global.asax にセッション変数を作成しました。私の問題は、ApplicationController.cs で Session 変数が null であることです。ただし、セッション変数はすべての子コントローラーで適切に設定されます。ここに私の ApplicationController.cs コードがあります:
public abstract class ApplicationController : Controller
{
private SkadPROEntities db = new SkadPROEntities();
public SkadPROEntities SkadProDB
{
get { return db; }
}
public ApplicationController()
{
//string[] currentUserString = User.Identity.Name.Split('\\');
//string myCurrentUser = currentUserString[1];
//string myCurrentUser = Session["currentUser"].ToString();
var empQuery = from employee in db.PRO_LSN_EMPLOYEE_OBJ
//where employee.LSN_Security_Nbr == Session["currentUser"].ToString()
where employee.LSN_Security_Nbr == "bhopkins"
select employee;
string firstName = "";
foreach (var myEmployee in empQuery)
{
firstName = myEmployee.LSN_cf_First_Name;
}
ViewBag.FirstName = firstName;
ViewBag.EmpName = "Bill Test";
}
}
ApplicationController.cs でセッション変数が null になっているのに、すべての子コントローラーに値が設定されているのはなぜですか?