1. 首页>
  2. 技术文章>
  3. asp.net core局部视图ViewComponent

asp.net core局部视图ViewComponent

5/29/17 8:38:08 AM 浏览 1425 评论 0

dotnetcore mvc

一个站点,经常有些地方会需要实现共用,而共用可以分为静态和动态。比如公用的底部是属于静态的,内容不会发生变化的。但像相关文章这样的功能,是需要根据当前文章去检索数据库返回相关数据的,每篇文章的相关文章都有可能是不同的。


在ASP.NET CORE中,我们可以使用分部视图自定义视图组件ViewComponent来实现,其使用也很简单。


分成下面3个步骤:

1) 先在根目录建一个文件夹ViewComponents ,里面实现类需要继承自ViewComponent,这里放的就是组件的控制层。比如我这样写:

public class HotTagsViewComponent : ViewComponent
{

	private readonly IArticleService _articleService;

	public HotTagsViewComponent(IArticleService articleService)
	{
		this._articleService = articleService;
	}


	public IViewComponentResult Invoke(int id)
	{
		var article = _articleService.Get(id);
		return View(article);

	}
}

2)接下来要写组件的视图层了,在网站根目录的Views下,建立default.cshtml ,最终目录如下:/Views/Shared/Components/HotTags/default.cshtml

3) 在其它需要使用该组件的地方,用下面语句:

@await Component.InvokeAsync("HotTags",100)


网友讨论