C# User.Identity在任何函数中都为null(MVC4)

C# User.Identity在任何函数中都为null(MVC4),c#,asp.net-mvc,asp.net-mvc-4,model-view-controller,C#,Asp.net Mvc,Asp.net Mvc 4,Model View Controller,我认为您使用的是System.Web.Security类,请确保通过在类中添加以下内容来初始化成员身份 [姓名首字母缩写SampleMembership] 例如: @{ LYCHE.Controllers.HomeController c = new LYCHE.Controllers.HomeController(); @Html.DropDownListFor(m => m.myTitle,c.AddressTitleList(), new { @class

我认为您使用的是System.Web.Security类,请确保通过在类中添加以下内容来初始化成员身份

[姓名首字母缩写SampleMembership]

例如:

 @{ LYCHE.Controllers.HomeController c = new LYCHE.Controllers.HomeController();

            @Html.DropDownListFor(m => m.myTitle,c.AddressTitleList(), new { @class = "form-control" })
            @Html.ValidationMessageFor(model => model.myTitle)

请描述更多的上下文。您能否在具有上述函数的同一控制器类的另一个ActionResult中获取User.Identity.Name?或者你把上面的功能放在哪里了?我只有一个控制器,所以,是的,它在同一个控制器中。是的,我可以在同一控制器的任何ActionResult中获得它。是否为该方法添加了[Authorize]属性?它不会解决问题@这是因为您自己正在实例化控制器var c=new HomeController。相反,创建一个重载函数AddressTitleListint userId,并从视图中将User.Identity.Name传递给该函数。你是说我应该在函数上方添加[InitializeSimpleMembership]吗?还是控制器类?[InitializeSimpleMembership]公共列表地址标题位于控制器类之上亲爱的,您也可以参考示例。
 @{ LYCHE.Controllers.HomeController c = new LYCHE.Controllers.HomeController();

            @Html.DropDownListFor(m => m.myTitle,c.AddressTitleList(), new { @class = "form-control" })
            @Html.ValidationMessageFor(model => model.myTitle)
[Authorize]
[InitializeSimpleMembership]
public class MyController : Controller
{
  // here is my class code 
 }