一些共享的部分的内容,我们可以做成局部视图。
比如右侧栏。
就比如我们FoxDevelop的右侧栏就使用到局部视图了。
局部视图是在其他视图中呈现的视图。
局部视图也是使用.cshtml文件。
局部视图把大视图分成较小的组件。减少内容重复。 运行在布局中使用。
局部视图是不会执行_Viewstart.chstml的
布局视图也是。
引用局部视图
引用局部视图由多种方法。
最简单的是使用@Html.Partial方法
它会返回IHtmlString对象
@Html.Partial("~/Views/Shared/_Right.cshtml")//返回IHtmlString
@Html.Partial("_Right") //好比把另外一个地方的内容解析好了 替换到这里来
@await Html.PartialAsync("_Right") 异步的方式加载局部视图Code language: JavaScript (javascript)
还可以通过RenderPartial方法。这个方法不反IHtmlString结果。
它把渲染的结果直接输出到响应中。正因为它不输出结果。
所以我们调用它的话。需要在Razor的内嵌C#代码块里面调用
@{
Html.RenderPartial("_Right");//这里是C#代码 把一个页面 加载在响应流里面
await Html.RenderPartialAsync("_Right");
}Code language: JavaScript (javascript)
添加一个_Right.cshtml的分部视图内容如下
<div style="background-color:red;height:250px;width:250px;">
右侧栏的内容
</div>Code language: HTML, XML (xml)
把它放在Shared目录下面
什么是响应流
我们知道 我们的这个HTML是从上往下加载
Previous: 28-异步的方式定义标签助手
Next: 30-局部视图的数据传递