ASP.NET MVC中如何在区域布局页调用区域内的分部视图?
在ASP.NET MVC区域布局页中调用区域内分部视图的正确写法
针对你在Member区域布局页调用_Header.cshtml分部视图的需求,以下几种写法可以正常生效:
1. 直接使用视图名称(推荐)
因为布局页本身属于Member区域,视图引擎会优先在当前区域的Views/Shared目录下查找分部视图,所以直接写:
<partial name="_Header"></partial>
或者明确指定Shared目录(如果分部视图确实放在该目录下):
<partial name="Shared/_Header"></partial>
2. 指定区域名称(明确上下文)
如果需要避免和根目录视图混淆,可通过area属性明确指定区域:
<partial name="_Header" area="Member"></partial>
或者结合目录路径和区域属性:
<partial name="Shared/_Header" area="Member"></partial>
为什么之前的写法无效?
- 使用
~/开头的绝对路径时,ASP.NET MVC的视图解析规则要求配合area参数才能识别区域上下文,单独的绝对路径无法正确定位; - 相对路径
../Member/...层级错误,布局页已处于Member区域的Views目录下,无需向上回溯再进入Member目录。
内容的提问来源于stack exchange,提问作者Sendy
相关产品推荐
相关产品推荐

