gpt4 book ai didi

razor - Nancy.ViewEngines.Razor v0.12.1.0 是否支持布局 View 和 _ViewStart?

转载 作者:行者123 更新时间:2023-12-04 02:32:19 25 4
gpt4 key购买 nike

我正在使用 Nuget 上的当前版本 v0.12.1.0 来了解 Nancy,我想使用 Razor View 引擎。

Razor View 引擎 v0.12.1.0 是否支持 Layout 和 _ViewStart?

例如

我在 ~/Views/_ViewStart.cshtml 中有以下内容

@{
Layout = "~/Views/Shared/_Layout.cshtml";
}

以及 ~/Views/Shared/_Layout.cshtml 中的以下内容
@inherits Nancy.ViewEngines.Razor.NancyRazorViewBase<dynamic>
<!DOCTYPE html>
<html>
<head>
@RenderSection("head", false)
</head>
<body>
@RenderBody()
</body>
</html>

但是当我点击主页时,我得到的只是我在 ~/Views/Home/Index.cshtml 中设置的 View 的内容。
<h1>Home</h1>

我的主页模块如下所示:
public class Home : NancyModule
{
public Home()
: base("")
{
Get["/"] = _ => View["Index"];
}
}

最佳答案

我想补充一下答案,因为我花了大约一天的时间试图弄清楚这一点:。

Nancy.RequestExecutionException: Oh noes! ---> System.NullReferenceException: Object reference not set to an instance of an object.
at Nancy.ViewEngines.DefaultViewCache.GetOrAdd[TCompiledView](ViewLocationResult viewLocationResult, Func`2 valueFactory)
at Nancy.ViewEngines.Razor.RazorViewEngine.GetOrCompileView(ViewLocationResult viewLocationResult, IRenderContext renderContext, Assembly referencingAssembly, Type passedModelType)
at System.Dynamic.UpdateDelegates.UpdateAndExecute5[T0,T1,T2,T3,T4,TRet](CallSite site, T0 arg0, T1 arg1, T2 arg2, T3 arg3, T4 arg4)
at CallSite.Target(Closure , CallSite , RazorViewEngine , ViewLocationResult , IRenderContext , Assembly , Object )
at Nancy.ViewEngines.Razor.RazorViewEngine.GetViewInstance(ViewLocationResult viewLocationResult, IRenderContext renderContext, Assembly referencingAssembly, Object model)
at System.Dynamic.UpdateDelegates.UpdateAndExecute5[T0,T1,T2,T3,T4,TRet](CallSite site, T0 arg0, T1 arg1, T2 arg2, T3 arg3, T4 arg4)
at Nancy.ViewEngines.Razor.RazorViewEngine.<>c__DisplayClass27.b__26(Stream stream)
at Nancy.Responses.MaterialisingResponse.PreExecute(NancyContext context)

与 Richard Banks 的回答类似 - Nancy 不会解析 Views/_ViewStart.cshtml 文件中的默认布局路径(即:~/Views/Shared/_Layout.cshtml)。 ~/在 Nancy 的 View 解析器中没有被解释。

您可以删除 ~/部分,或注释掉默认布局并手动指定每个 View 的布局。我做后者的原因是,即使您已取消 View 中的布局,Nancy 仍会执行 _Layout.cshtml。

关于razor - Nancy.ViewEngines.Razor v0.12.1.0 是否支持布局 View 和 _ViewStart?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12900769/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com