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;
}
我在任何 ActionResult 中获取User.Identity.Name但在上面的函数中没有,为什么?这有什么替代方案吗?为什么我得到User = Null。请帮助:)
注意:上面的函数/方法不是 ActionResult ,我只有一个控制器。
我不知道它会有所帮助,但HttpContext在上面的函数中也是null ...我也是从View中调用这个函数
@{ 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 :(得分:0)
我认为你正在使用System.Web.Security类,请确保通过在类下面添加
来初始化成员资格[InitializeSimpleMembership]
示例:
[Authorize]
[InitializeSimpleMembership]
public class MyController : Controller
{
// here is my class code
}