我试着在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));
}
}
有没有另一种方法可以做到这一点?我试图实现获取用户信息后,他们登录显示它与他们的个人资料图片索引页..请帮助!
每个请求都由控制器的新实例处理。想想你如何使它成为无状态。缓存和会话可以在需要的地方使用。请记住,使用会话强制请求被连续处理而不是异步处理。 –