如何解决网站范围内的标记云
| 我已经为我的网站创建了标签云局部视图。局部视图将包含在网站的所有页面上。数据来自数据库。有没有一种方法可以全局运行驻留在控制器中的代码,所以我不必将其放在每个控制器的每个动作上吗? 我想避免在每一个动作上都这样:public ActionResult Index()
{
ViewData[\"Tags\"] = Tags.GetTags();
return View();
}
和
public ActionResult Index()
{
return View(Tags.GetTags());
}
如果我不得不更改该代码,那将是一场噩梦。必须有一种更好的方法来处理网站每个页面上的数据库绑定内容。
解决方法
您可以始终使用
ViewModel
模式,并为所有操作提供基本ViewModel
类:
public abstract class ViewModelBase
{
public IEnumerable<Tag> Tags { get; private set; }
public ViewModelBase()
{
Tags = GetTagsFromDatabase();
}
}
然后,使每个后续的ViewModel
继承此基类。
public HomeViewModel : ViewModelBase
{
...
}
然后在您的Controller
动作中:
public ActionResult Index()
{
var viewModel = new HomeViewModel();
return View(viewModel);
}
希望这可以帮助。
, 您可以将全局代码放在MasterPage中,也可以从代码中创建自定义控件,然后在需要该代码的页面中重新使用它。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。