2015-07-13 53 views
0
public List<SelectListItem> AddressTitleList() 
     { 
      string ID = User.Identity.Name; 
      List<SelectListItem> title = new List<SelectListItem>(); 
      using (LYCHEEntities DB = new LYCHEEntities()) 
      { 
       int ID = Convert.ToInt16(User.Identity.Name.ToString()); 

       var titles = from g in DB.UserAddresses 
          where g.UserID == ID 
          select new { g.Title, g.UserAddressID }; 

       foreach (var q in titles) 
       { 
        title.Add(new SelectListItem() { Text = q.Title, Value = q.UserAddressID.ToString() }); 
       } 

      } 
      return title; 
     } 

我越來越User.Identity.Name任何的ActionResult但不是在上面的函數,爲什麼呢?除此之外還有其他的選擇嗎?爲什麼我得到User = Null。好心幫:)User.Identity是空的任何功能(MVC 4)

注:以上函數/方法不是的ActionResult,我只有一個控制器。

我不知道它會幫助或沒有,但HttpContext的也是上面的函數空......還我從查看

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

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

請描述更多的上下文。您可以在具有上述功能的同一控制器類的另一個ActionResult中獲取User.Identity.Name嗎?或者你把以上功能放在哪裏 –

+0

我只有一個控制器,所以,它是在同一個控制器中。是的,我可以在同一個控制器的任何ActionResult中獲得它。 –

+0

您是否爲該方法添加了[Authorize]屬性? – LittleDragon

回答

0

我認爲你正在使用的System.Web調用這個函數。安全類,請確保您通過下面的類添加初始化會員

[InitializeSimpleMembership]

例如:

[Authorize] 
[InitializeSimpleMembership] 
public class MyController : Controller 
{ 
    // here is my class code 
} 
+0

你是說我應該在函數上面加上[InitializeSimpleMembership]?或控制器類? '[InitializeSimpleMembership] public List AddressTitleList()' –

+0

以上的控制器類親愛的,你也可以參考這個例子。 – raju1208