使用内置字符串加载问题的奇怪.NET核心部分视图

时间:2017-07-03 10:55:02

标签: c# .net asp.net-mvc asp.net-core

有一些背景知识是我试图按照我所在的子区域加载导航部分文件。简单的我原本以为...

好的,这样可行:

@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语句,看看是否与它有关,nope。我尝试过字符串格式化:

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",如果我尝试将其更改为&#39的路径; s无效然后抛出错误,所以它肯定找到了View,但只是拒绝显示它。

我似乎无法在网上找到任何相关信息,但可能会搜索错误信息。有什么想法吗?!

1 个答案:

答案 0 :(得分:3)

尝试在等待部分之前放回@

上周我遇到类似问题的问题,并且暂时搁浅了一下。

我认为如果没有@,视图内容将保留代码端,而不会被编组回调用者视图。