Razor master.cshtml中的UmbracoTemplateview继承会覆盖UmbracoViewPage<;客户模型>;在blog.cshtml中

Razor master.cshtml中的UmbracoTemplateview继承会覆盖UmbracoViewPage<;客户模型>;在blog.cshtml中,razor,umbraco,umbraco7,Razor,Umbraco,Umbraco7,因此,我需要能够设置我的网站标题的网页上的访问者,所以在我的Master.cshtml我有 @inherits UmbracoTemplatePage .... <title>@Model.Content.Name</title> 但这只是给了我这个错误 传递到字典中的模型项的类型为 “Umbraco_Blog.Models.BlogPost[]”,但此词典需要一个模型 “Umbraco.Web.Models.RenderModel”类型的项 如果我删除了布局,它就会工

因此,我需要能够设置我的网站标题的网页上的访问者,所以在我的Master.cshtml我有

@inherits UmbracoTemplatePage
....
<title>@Model.Content.Name</title>
但这只是给了我这个错误

传递到字典中的模型项的类型为 “Umbraco_Blog.Models.BlogPost[]”,但此词典需要一个模型 “Umbraco.Web.Models.RenderModel”类型的项


如果我删除了布局,它就会工作。

解决这个问题的一个方法是让你的博客模型从RenderModel继承。如果采用这种方法,则需要使用IPPublishedContent实例调用RenderModel构造函数,您可以这样做:

public BlogPost() : base(UmbracoContext.Current.PublishedContentRequest.PublishedContent)
{
}
另一个解决方案是将布局强类型化为基类模型,例如

@model MyBaseViewModel
然后将BlogPost模型更改为从该基础模型继承,并使用

@model BlogPost
请注意,如果采用此方法,则会丢失辅助对象属性,如UmbracoHelper等

@model MyBaseViewModel
@model BlogPost