我試着在ASP.NET MVC 4傳遞一個用戶名,他們已登錄,但我不能想出一個辦法來獲取數據轉移之後。Asp.net MVC 4 - 通過類傳遞數據
這裏被命名爲「驗證」登錄的行動,得到了一組後的用戶信息。
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");
}
名稱變量被設置後,我試圖從我的PostController中的索引視圖,它的值是使用繼承來顯示,但變量重置爲null我的網站的索引..繼承人用於索引操作從Auth Action所在的AccountController中調用name變量。
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));
}
}
有沒有另一種方法可以做到這一點?我試圖實現獲取用戶信息後,他們登錄顯示它與他們的個人資料圖片索引頁..請幫助!
每個請求都由控制器的新實例處理。想想你如何使它成爲無狀態。緩存和會話可以在需要的地方使用。請記住,使用會話強制請求被連續處理而不是異步處理。 –