【发布时间】:2016-08-26 23:40:48
【问题描述】:
我是 MVC 的新手,并且来自 asp.net webforms 背景,所以我仍然发现我很难打破这种 webforms 思维方式。一个特别的问题是,如何处理我需要填充共享视图的代码?
在 asp.net 网络表单中,假设我的母版页上有一个标签。要填充该标签,我需要做的就是将一些代码放入母版页代码隐藏中,所有引用此母版页的页面都会看到它。
然而,在 MVC 中,我不确定在哪里放置共享代码。目前,我在所有调用引用我的共享视图的视图的操作上复制了以下代码,因此我可以在共享视图上填充数据:
public ActionResult MyFirstView()
{
Account account = _accountRepository.GetAccountByEmail(System.Web.HttpContext.Current.User.Identity.Name);
List<Campaign> campaigns = new List<Campaign>();
campaigns = _campaignRepository.GetCampaignsByAccountId(account.AccountId);
LayoutModel model = new LayoutModel
{
AccountId = account.AccountId,
Email = account.Email,
Name = account.Name,
LogoPath = account.LogoPath,
};
foreach (Campaign campaign in campaigns)
{
model.AddCampaigns(campaign);
}
return View(model);
}
我应该如何处理这个共享代码,这样我就不需要继续复制它了?
谢谢
【问题讨论】:
-
如果它不是一个 MVC 控制器而是一个简单、普通类?一样的……
-
使用声明将这些内容存储在 cookie 中并在视图/布局中访问声明会更好吗?
标签: c# asp.net asp.net-mvc asp.net-mvc-4