Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 站点范围标记云_C#_Asp.net Mvc - Fatal编程技术网

C# 站点范围标记云

C# 站点范围标记云,c#,asp.net-mvc,C#,Asp.net Mvc,我已经为我的站点创建了标记云部分视图。partialview将包含在网站的所有页面上。数据来自数据库。有没有一种方法可以全局运行控制器中的代码,这样我就不必将它放在每个控制器的每个动作上 我希望避免在每一个动作上都这样: public ActionResult Index() { ViewData["Tags"] = Tags.GetTags(); return View(); } 及 如果我不得不更改代码,那将是一场噩梦。必须有一种更好的方法来处理站点每个页面上的数据库绑定内

我已经为我的站点创建了标记云部分视图。partialview将包含在网站的所有页面上。数据来自数据库。有没有一种方法可以全局运行控制器中的代码,这样我就不必将它放在每个控制器的每个动作上

我希望避免在每一个动作上都这样:

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);
}