C# 站点范围标记云
我已经为我的站点创建了标记云部分视图。partialview将包含在网站的所有页面上。数据来自数据库。有没有一种方法可以全局运行控制器中的代码,这样我就不必将它放在每个控制器的每个动作上 我希望避免在每一个动作上都这样:C# 站点范围标记云,c#,asp.net-mvc,C#,Asp.net Mvc,我已经为我的站点创建了标记云部分视图。partialview将包含在网站的所有页面上。数据来自数据库。有没有一种方法可以全局运行控制器中的代码,这样我就不必将它放在每个控制器的每个动作上 我希望避免在每一个动作上都这样: public ActionResult Index() { ViewData["Tags"] = Tags.GetTags(); return View(); } 及 如果我不得不更改代码,那将是一场噩梦。必须有一种更好的方法来处理站点每个页面上的数据库绑定内
public ActionResult Index()
{
ViewData["Tags"] = Tags.GetTags();
return View();
}
及
如果我不得不更改代码,那将是一场噩梦。必须有一种更好的方法来处理站点每个页面上的数据库绑定内容。您可以将全局代码放在母版页中,或者,您也可以从代码中创建自定义控件,并在需要该代码的页面中重用它。您可以始终使用
ViewModel
模式,并为所有操作创建一个基本ViewModel
类:
公共抽象类ViewModelBase
{
公共IEnumerable标记{get;private set;}
公共ViewModelBase()
{
Tags=GetTagsFromDatabase();
}
}
然后只需让每个后续的ViewModel
继承这个基类
公共HomeViewModel:ViewModelBase
{
...
}
然后在您的控制器
操作中:
public ActionResult Index()
{
var viewModel = new HomeViewModel();
return View(viewModel);
}
希望这有帮助。HA!就是这样。好主意。
public ActionResult Index()
{
var viewModel = new HomeViewModel();
return View(viewModel);
}