我看过Umbraco中关于IPublishedContent
的一些类似错误(是的,我知道这是与我使用的不同),他们都说了自4.11.7以来它已被修复 - 但是,我使用v6显然不是这样。
我的代码一直有效,直到我投入合并:
曾为:
DynamicPublishedContent countryFolder = Umbraco.Media(CurrentPage.GetProperty("contestMediaFolder").Value.ToString());
不再有效:
DynamicPublishedContent countryFolder = !string.IsNullOrEmpty(contestFolder)
? Umbraco.Media(CurrentPage.GetProperty("contestMediaFolder").Value.ToString())
: Umbraco.Media(contestFolder);
无法转换类型&umbraco.Core.Dynamics.DynamicNull' to' Umbraco.Web.Models.DynamicPublishedContent'
我有(2)调用相同代码的控制器,一个是在页面加载时命中的控制器,另一个是API控制器。这就是我传入变量contestFolder
,即string
的原因,因为此方法返回一个列表。在我的方法调用中,我也传入string.Empty
,这将运行第一行。
我试过了:
DynamicPublishedContent
var
。int
而不是string
传递给该方法
(contestFolder
将是一个int)。Umbraco.Media()
上投放两个回报
DynamicPublishedContent
DynamicPublishedContent
,而是使用
IPublishedContent
对象。答案 0 :(得分:0)
我改变了我检索文件夹的方式。我挑出了原因,如果无论第二次合并命中,Umbraco是否尝试检索文件夹,如果它为空,则返回该错误,这是b / c,
无法将类型'Umbraco.Core.Dynamics.DynamicNull'转换为'Umbraco.Web.Models.DynamicPublishedContent'
因此,您必须将实际媒体ID(有效)传递给Umbraco.Media()
方法,否则您将返回此错误。
public override ActionResult Index(RenderModel model)
{
var entries = this.GetContestEntries(this.GetCountryFolder(CurrentPage.GetProperty("contestMediaFolder").Value.ToString()));
return base.Index(model);
}
public DynamicPublishedContent GetCountryFolder(string countryFolder)
{
return (DynamicPublishedContent)Umbraco.Media(countryFolder);
}
public List<WAR2015ContestModel> GetContestEntries(DynamicPublishedContent countryFolder)
{
..... // code omitted
}