好吧,我有三个可能很愚蠢的问题,但我非常感谢您的输入或提示或链接,因为我被卡住了:
有一个实体“投资组合”,其中包含股票、期权、期货和 groupID 的列表,并且有几个具有 groupID 的用户。我只想向他和投资组合的 groupID 相同的用户显示投资组合。
到目前为止,我有一个视图模型,其中包含该视图所需的所有实体的列表。在视图本身中,将显示所有投资组合、所有股票、所有选项等,而不仅仅是与用户具有相同组的那些。
除了它不起作用之外,我觉得在这样的视图中尝试过滤同一组用户和投资组合是错误的:
@if (portfolio.GroupID == Model.UserProfiles.Find(m => m.UserName == User.Identity.Name).GroupId)
Q1:我会很高兴在如何管理这样的事情的正确方向上的提示/示例/链接。
Q2:我在这里使用视图模型的概念完全错误吗?
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);
}