部分视图在调试模式下呈现,但不在发布模式下呈现。
堆栈跟踪
[ArgumentNullException: Value cannot be null.
Parameter name: key]
System.Collections.Concurrent.ConcurrentDictionary`2.GetOrAdd(TKey key, Func`2 valueFactory) +5895838
Nancy.ViewEngines.DefaultViewCache.GetOrAdd(ViewLocationResult viewLocationResult, Func`2 valueFactory) +329
Nancy.ViewEngines.Razor.RazorViewEngine.GetOrCompileView(ViewLocationResult viewLocationResult, IRenderContext renderContext, Assembly referencingAssembly, Type passedModelType) +186
System.Dynamic.UpdateDelegates.UpdateAndExecute5(CallSite site, T0 arg0, T1 arg1, T2 arg2, T3 arg3, T4 arg4) +401
CallSite.Target(Closure , CallSite , RazorViewEngine , ViewLocationResult , IRenderContext , Assembly , Object ) +575
Nancy.ViewEngines.Razor.RazorViewEngine.GetViewInstance(ViewLocationResult viewLocationResult, IRenderContext renderContext, Assembly referencingAssembly, Object model) +1128
System.Dynamic.UpdateDelegates.UpdateAndExecute5(CallSite site, T0 arg0, T1 arg1, T2 arg2, T3 arg3, T4 arg4) +401
CallSite.Target(Closure , CallSite , RazorViewEngine , ViewLocationResult , IRenderContext , Assembly , Object ) +495
Nancy.ViewEngines.Razor.<>c__DisplayClass1f.<RenderView>b__1e(Stream stream) +470
Nancy.ViewEngines.Razor.HtmlHelpers`1.Partial(String viewName, Object modelForPartial) +1872
RazorOutput.RazorView.<Execute>b__3() +632
Nancy.ViewEngines.Razor.NancyRazorViewBase`1.ExecuteView(String body, IDictionary`2 sectionContents) +374
Nancy.ViewEngines.Razor.<>c__DisplayClass1f.<RenderView>b__1e(Stream stream) +775
Nancy.Hosting.Aspnet.NancyHandler.ProcessRequest(HttpContextBase context) +81
System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +913
System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +165
master.cshtml(仅限相关部分)
@if (IsSectionDefined("sidebar")) {
<div id="two-col">
@RenderBody()
</div>
<div id="sidebar">
@RenderSection("sidebar")
</div>
} else {
<div id="one-col">
@RenderBody()
</div>
}
index.cshtml
@inherits Nancy.ViewEngines.Razor.NancyRazorViewBase<dynamic>
@{ Layout = "master.cshtml"; }
// html for body, doesn't use model
@section sidebar {
@Html.Partial("/sidebars/sidebar.cshtml", Model)
}
sidebar.cshtml(示例部分)
<ul>
@foreach (var item in Model.Items)
{
<li>@Html.Raw(@item.DisplayText)</li>
}
</ul>
答案 0 :(得分:8)
我最近遇到了这个问题,但是链接到我的主布局页面。 查看索引页面,它可能是两件事之一,例如我,母版页的路径或部分路径。 如果删除部分URL上的前导斜杠或者主页位于共享文件夹中,请添加其URL的完整路径(不带前导斜杠或〜/)。
这是我找到解决方案的地方。 https://groups.google.com/forum/#!topic/nancy-web-framework/zRLth_hl2r8
HTH
答案 1 :(得分:1)
在我们的案例中,问题是我们所指的视图缺少设置:
构建操作:内容
在调试模式下意味着文件正在从文件系统中读取,但在发布模式下运行时没有被复制到发布bin文件夹。