asp.net core mvc 提供了部分视图的新替代品:视图组件。html
视图组件与分布视图的主要区别在于视图组件与控制器不相关。可以使用在独立于单个控制器的场景,如:菜单导航、侧边栏、分页栏等。mvc
using System.Threading.Tasks; using Microsoft.AspNetCore.Mvc; public class OneModelViewComponent : ViewComponent { //异步方式 public Task<IViewComponentResult> InvokeAsync(){ return Task.FromResult<IViewComponentResult>(View(new {name="Rohmeng"})); } // public IViewComponentResult Invoke() // { // ViewBag.Msg = "视图组件"; // return View(); // } }
在Shared文件夹中为视图建立Components文件夹,再建立对应组件的OneModel文件夹,把须要命名为default.cshtml的视图放入其中。asp.net
Shared --> Components --> OneModel --> default.cshtml异步
<h1>@Model</h1>
在其它视图中调用视图组件.net
@await Component.InvokeAsync("OneModel")
或者使用 Tag Helper调用视图组件,要为视图组件使用Tag Helper须要添加@addTagHelper指令和视图组件所在的程序集名称。Tag Helper经过切换到小写字母来更换名称,不使用大写字母,而是添加连字符。code
@addTagHelper *, 程序集名称 <div> <vc:one-model /> </div>