C# 使变量在ASP.NET MVC 3中普遍可访问?

C# 使变量在ASP.NET MVC 3中普遍可访问?,c#,asp.net-mvc-3,C#,Asp.net Mvc 3,所以,当你使用Java创建网站时,你有一个叫做会话的东西,在这个会话中,你可以存储任何你想要的信息,只要浏览器会话还在进行 我对使用ASP.NET MVC 3还相当陌生,能够在正确的时间传递正确的数据常常让我束手无策。在大多数情况下,我理解如何将变量从视图传递到控制器,再传递回其他视图 但我想知道是否有一种方法可以让我们从任何视图中获取用户的地址?我知道有内置的User.Identity.Name,这对于检查用户是否在自己的页面上等非常方便。但是有没有办法让用户对象具有可在任何地方访问的自定义信

所以,当你使用Java创建网站时,你有一个叫做会话的东西,在这个会话中,你可以存储任何你想要的信息,只要浏览器会话还在进行

我对使用ASP.NET MVC 3还相当陌生,能够在正确的时间传递正确的数据常常让我束手无策。在大多数情况下,我理解如何将变量从视图传递到控制器,再传递回其他视图

但我想知道是否有一种方法可以让我们从任何视图中获取用户的地址?我知道有内置的
User.Identity.Name
,这对于检查用户是否在自己的页面上等非常方便。但是有没有办法让用户对象具有可在任何地方访问的自定义信息

我目前正在我的网站上建立一个声誉系统(很像这个网站),在这个系统中,不同程度的声誉允许你做不同的事情。因此,在很多视图中,我需要说“嘿,如果用户有这样的声誉,让他们看到这个功能。”但如果我必须将一个用户传递到每个视图中,这是非常乏味的


有什么想法吗?

我想你在找


如果您想了解有关会话和ASP.NET MVC的更多信息,请查看以更好地了解在请求期间会话何时可用。

您可以将自定义类对象保留为会话。会话将跨请求提供

假设你有这样一门课

public class LoggedInUser
{
  public string DisplayName { set;get;}
  //Other relevant properties. relevant only not everything !
}
LoggedInUser objLoggedInUser=new LoggedInUser();
objLoggedInUser.DisplayName="Johnson";
Session["LoggedUser"]=objLoggedInUser;
LoggedInUser objLoggedInUser;
if(LoggedInUser objLoggedInUser=!=null)
{
  objLoggedInUser=(LoggedInUser)Session["LoggedUser"];
  // Now you can access objLoggedInUser.DisplayName
}
您可以像这样将其存储在会话中

public class LoggedInUser
{
  public string DisplayName { set;get;}
  //Other relevant properties. relevant only not everything !
}
LoggedInUser objLoggedInUser=new LoggedInUser();
objLoggedInUser.DisplayName="Johnson";
Session["LoggedUser"]=objLoggedInUser;
LoggedInUser objLoggedInUser;
if(LoggedInUser objLoggedInUser=!=null)
{
  objLoggedInUser=(LoggedInUser)Session["LoggedUser"];
  // Now you can access objLoggedInUser.DisplayName
}
现在,无论您想在哪里阅读,都可以像这样从会话中阅读

public class LoggedInUser
{
  public string DisplayName { set;get;}
  //Other relevant properties. relevant only not everything !
}
LoggedInUser objLoggedInUser=new LoggedInUser();
objLoggedInUser.DisplayName="Johnson";
Session["LoggedUser"]=objLoggedInUser;
LoggedInUser objLoggedInUser;
if(LoggedInUser objLoggedInUser=!=null)
{
  objLoggedInUser=(LoggedInUser)Session["LoggedUser"];
  // Now you can access objLoggedInUser.DisplayName
}
我将把这个功能包装成一个函数,并调用该函数,以便在任何我想要的地方获取数据