好的对象,我有三个可能愚蠢的问题,但我会非常感谢从你输入或暗示或链接,因为我坚持:MVC - 显示根据用户的财产
有一个实体“投资组合”与名单股票,期权,期货和groupID,还有几个用户使用groupID。 我想只显示投资组合的用户,他和投资组合的组ID是相同的。
到目前为止,我有一个视图模型,其中包含该视图所需的所有实体列表。在视图本身中,所有投资组合,所有股票,所有期权等都显示出来,而不仅仅显示与用户相同的组。
除了这个事实,这是行不通的,我觉得这是不对的,试图在这样的视图筛选同组的用户和投资组合:
@if (portfolio.GroupID == Model.UserProfiles.Find(m => m.UserName == User.Identity.Name).GroupId)
Q1:我会很高兴对于如何管理这样的事情的正确方向提示/示例/链接。
Q2:我在这里用viewmodel的概念是完全错误的吗?
public List<StockPosition> StockPositions { get; set; }
public List<OptionPosition> OptionPositions { get; set; }
public List<FuturePosition> FuturePositions { get; set; }
public List<BondPosition> BondPositions { get; set; }
public List<FondsPosition> FondsPositions { get; set; }
public List<Portfolio> Portfolios { get; set; }
public List<UserProfile> UserProfiles { get; set; }
Q3:的PortfolioController双手在几乎所有的视图列表。应该在这里实施过滤吗?
public ActionResult Index()
{
var viewModel = new PortfolioExtended();
viewModel.StockPositions = db.StockPositions.ToList();
viewModel.BondPositions = db.BondPositions.ToList();
viewModel.FuturePositions = db.FuturePositions.ToList();
viewModel.OptionPositions = db.OptionPositions.ToList();
viewModel.FondsPositions = db.FondsPositions.ToList();
viewModel.Portfolios = db.Portfolios.ToList();
viewModel.UserProfiles = db.UserProfiles.ToList();
return View(viewModel);
}
是否是当前登录的用户查看索引页? –
是的,用户必须先登录才能看到索引页面,并且每个用户都有一个groupId分配。 – peter
您是否能够在索引操作中获取当前用户的ID? –