当 ListContent Title 为 null 时,C# Razor 模板抛出错误
C# Razor template throws error when ListContent Title is null
DNN 7.4.2
2SXC 8.8.0
嘿,
长期粉丝。最新版本是惊人的。每个人都喜欢这个界面。 :D
我想知道你是否可以帮助我解决我已经困扰了一段时间的问题。我认为这与模块版本无关,但可能与我的 C# 模板有关。
当我有一个列表(例如董事会)时,每当我添加第一项时,我的 c# razor 模板都会抛出错误,因为我还没有定义 @ListContent.Title。但如果不先添加多个项目,我就无法编辑标题。所以我的问题(和我的解决方法)看起来像这样:
- 我将内容模块添加到页面
- 我 select 我的内容类型(人物)和我的模板(董事会)
- 提示我没有演示项目,然后我单击蓝色编辑铅笔开始我的第一个演示项目
- 单击编辑图标后,会出现模式,我添加第一个人(董事会成员)并单击保存。
- 模块抛出错误,因为列表 Header 标题尚未定义。
- 我必须删除(或注释掉)模板中与@ListContent 相关的任何内容,以便错误消失。
- 然后我添加第二个项目,这样我就可以实际查看列表,然后转到列表 Header。
- 我编辑列表Header填写标题并保存。
- 然后我回到我的模板并将@ListContent.Title和@ListContent.Toolbar部分放回去并保存。
这是很多迂回的步骤,我想知道如何避免这个问题?我试过在 @ListContent.Title 值(和其他 @ListContent 值)周围加入条件语句,但它并没有解决问题。我仍然必须完全删除它,直到它真正成为一个列表(通过至少添加第二个项目)。我的所有列表(启用列表的模板)都会出现此问题。
这是出现的错误:
There was an error while rendering the template: Microsoft.CSharp.RuntimeBinder.RuntimeBinderException: Cannot perform runtime binding on a null reference at CallSite.Target(Closure , CallSite , Object ) at System.Dynamic.UpdateDelegates.UpdateAndExecute1[T0,TRet](CallSite site, T0 arg0) at CallSite.Target(Closure , CallSite , Object ) at ASP._Page_Portals_0_2sxc_Content__Board_of_Directors_cshtml.Execute() in d:\home\site\wwwroot\Portals[=10=]sxc\Content\_Board of Directors.cshtml:line 9 at System.Web.WebPages.WebPageBase.ExecutePageHierarchy() at ...
我最初在 codeplex 网站的问题中发布了这个,但我发现我应该把它添加到这里。您可以在这里下载附件:https://sexycontent.codeplex.com/workitem/1971
你让生活变得太复杂了:)。
基本上每个模板都可以配置为在list-header中使用demo-item,就像普通列表中的demo-item一样。这应该为模板提供真实数据,即使没有输入 header。
:)
DNN 7.4.2 2SXC 8.8.0
嘿,
长期粉丝。最新版本是惊人的。每个人都喜欢这个界面。 :D
我想知道你是否可以帮助我解决我已经困扰了一段时间的问题。我认为这与模块版本无关,但可能与我的 C# 模板有关。
当我有一个列表(例如董事会)时,每当我添加第一项时,我的 c# razor 模板都会抛出错误,因为我还没有定义 @ListContent.Title。但如果不先添加多个项目,我就无法编辑标题。所以我的问题(和我的解决方法)看起来像这样:
- 我将内容模块添加到页面
- 我 select 我的内容类型(人物)和我的模板(董事会)
- 提示我没有演示项目,然后我单击蓝色编辑铅笔开始我的第一个演示项目
- 单击编辑图标后,会出现模式,我添加第一个人(董事会成员)并单击保存。
- 模块抛出错误,因为列表 Header 标题尚未定义。
- 我必须删除(或注释掉)模板中与@ListContent 相关的任何内容,以便错误消失。
- 然后我添加第二个项目,这样我就可以实际查看列表,然后转到列表 Header。
- 我编辑列表Header填写标题并保存。
- 然后我回到我的模板并将@ListContent.Title和@ListContent.Toolbar部分放回去并保存。
这是很多迂回的步骤,我想知道如何避免这个问题?我试过在 @ListContent.Title 值(和其他 @ListContent 值)周围加入条件语句,但它并没有解决问题。我仍然必须完全删除它,直到它真正成为一个列表(通过至少添加第二个项目)。我的所有列表(启用列表的模板)都会出现此问题。
这是出现的错误:
There was an error while rendering the template: Microsoft.CSharp.RuntimeBinder.RuntimeBinderException: Cannot perform runtime binding on a null reference at CallSite.Target(Closure , CallSite , Object ) at System.Dynamic.UpdateDelegates.UpdateAndExecute1[T0,TRet](CallSite site, T0 arg0) at CallSite.Target(Closure , CallSite , Object ) at ASP._Page_Portals_0_2sxc_Content__Board_of_Directors_cshtml.Execute() in d:\home\site\wwwroot\Portals[=10=]sxc\Content\_Board of Directors.cshtml:line 9 at System.Web.WebPages.WebPageBase.ExecutePageHierarchy() at ...
我最初在 codeplex 网站的问题中发布了这个,但我发现我应该把它添加到这里。您可以在这里下载附件:https://sexycontent.codeplex.com/workitem/1971
你让生活变得太复杂了:)。
基本上每个模板都可以配置为在list-header中使用demo-item,就像普通列表中的demo-item一样。这应该为模板提供真实数据,即使没有输入 header。
:)