ログイン後にASP.NET MVC 4でユーザー名を渡そうとしていますが、データを転送する方法がわかりません。
これは、設定後にユーザー情報を取得する「Auth」という名前のログイン アクションです。
public string name;
account userInfo;
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Auth(account user)
{
if (ModelState.IsValid)
{
userInfo = GetUser(user);
if (userInfo.rank == "a")
{
Session["IsAdmin"] = true;
Session["IsMember"] = true;
name = userInfo.username;
return RedirectToAction("Index", "Mod");
}
if (userInfo.rank == "member")
{
Session["IsMember"] = true;
name = userInfo.username;
return RedirectToAction("Index", "Post");
}
}
name = userInfo.username;
return View("Login");
}
name 変数が設定された後、継承を使用して表示するサイトのインデックスである PostController の Index View から値を取得しようとしましたが、変数は null にリセットされます。 AccountController から name 変数を呼び出すために使用される Index アクションは次のとおりです。認証アクションが存在する場所。
public class PostController : AccountController
{
public ActionResult Index(int? id)
{
/*EncryptConString();*/
int pageNum = id ?? 0;
IEnumerable<Post> posts =
(from post in db.Posts
where post.time < DateTime.Now && post.category == "Blog Post"
orderby post.time descending
select post).Skip(pageNum * postCount).Take(postCount +1);
ViewBag.IsPreviousLinkVisible = pageNum > 0;
ViewBag.IsNextLinkVisible = posts.Count() > postCount;
ViewBag.PageNumber = pageNum;
Session["ShowSide"] = true;
ViewBag.showSidebar = showSidePanel;
ViewBag.SecAbvPosts = secAbvPosts;
ViewBag.IsAdmin = IsAdmin;
ViewBag.IsMember = IsMember;
ViewBag.Name = name;
return View(posts.Take(postCount));
}
}
これを行う別の方法はありますか?ログイン後にユーザー情報を取得して、プロフィール写真とともにインデックスページに表示しようとしています。助けてください!!