一个有点背景是,我试图加载一个导航部分文件,每个子区域,我在。很简单我原本以为...
好吧,这样可以:
@await Html.PartialAsync("~/Areas/Admin/SubAreas/General/Views/Shared/_Navigation.cshtml")
这是行不通的:
@if (ViewContext.RouteData.Values.ContainsKey("subarea"))
{
// ViewContext.RouteData.Values["subarea"].ToString() comes out as "General"
await Html.PartialAsync("~/Areas/Admin/SubAreas/" + ViewContext.RouteData.Values["subarea"].ToString() + "/Views/Shared/_Navigation.cshtml");
}
我试着删除if语句,看看这是否与它有关,没有。我尝试了字符串格式,如:
await Html.PartialAsync(string.Format("~/Areas/Admin/SubAreas/{0}/Views/Shared/_Navigation.cshtml", ViewContext.RouteData.Values["subarea"].ToString()));
仍然没有香蕉-字符串肯定是“~/Areas/Admin/SubAreas/General/Views/Shared/_Navigation.cshtml”,如果我尝试将其更改为无效路径,则会抛出错误,因此它肯定会找到View,但只是拒绝显示它。
我在网上找不到任何关于这个的东西,但可能是在寻找错误的东西。有什么想法吗?!
2条答案
按热度按时间gojuced71#
尝试将
@
放回await部分之前。上周我遇到了这样的问题,挠了一会儿头。
我认为如果没有
@
,视图内容将被保留在 * 代码端 *,而不会被编组回调用者视图。l2osamch2#
劳埃德的回答是我需要的解决方案(谢谢!),但在我实施它的过程中,另一个特质向我展示了出来。在HTML中过于紧密地 Package 代码也会导致同样的问题。
无法呈现视图,但是我可以简单地将其分解为
我不知道为什么会发生这种情况,我还没有深入研究过这一部分,但我认为这值得在同一个主题中分享,因为这是同一个问题的不同示例,有不同的修复方法。