我正在开发 umbraco 项目 (12.3.4),并安装了 OskiStarterKit(3.0.2)
我使用模板创建了一个 Documenttype 并添加了一些组合,并在其中放入了一些内容,之后我还生成了模型。
这是我的产品.cshtml
@using Umbraco.Cms.Web.Common.PublishedModels;
@inherits Umbraco.Cms.Web.Common.Views.UmbracoViewPage<ContentModels.Product>
@using ContentModels = Umbraco.Cms.Web.Common.PublishedModels;
@{
Layout = null;
}
<!DOCTYPE html>
<html>
<head>
<title>@Model.oTitle</title>
</head>
并且属性名称“oTitle”与生成的已发布产品模型上的相同
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Umbraco.ModelsBuilder.Embedded", "12.3.4+4a0d364")]
[global::System.Diagnostics.CodeAnalysis.MaybeNull]
[ImplementPropertyType("oTitle")]
public virtual string OTitle => global::Umbraco.Cms.Web.Common.PublishedModels.OCardsContainer.GetOTitle(this, _publishedValueFallback);
生成模型的命名空间是
namespace Umbraco.Cms.Web.Common.PublishedModels
一切似乎都很好,但由于某种原因我收到此错误:
“Product”不包含“oTitle”的定义,并且找不到接受“Product”类型的第一个参数的可访问扩展方法“oTitle”(您是否缺少 using 指令或程序集引用?)
可能是什么问题?
oTitle 是属性的别名,但是您的模型属性使用 PascalCase 而不是 CamelCase 生成:-) 所以您应该可以使用 @Model.OTitle 来代替?