我正在尝试使用局部视图将元数据和标题图像(单独的局部视图)渲染到_layout.cshtml中。在执行此操作时,我收到以下错误:CS0104:'Meta'是'Namespace.Models.Meta'和'Umbraco.Web.PublishedContentModels.Meta'之间的模糊引用
我尝试将Meta的名称更改为evreything,甚至是非意义的键盘旋转,如dfguyfgfjhagjhsgf。还是行不通。
meta.cs clase如下:
using System.Collections.Generic;
using System.Linq;
using System.Web;
using Umbraco.Core.Models;
using Umbraco.Web;
namespace Namespace.Models
{
public class Meta
{
public Meta(IPublishedContent content)
{
Name = content.Name;
Description = content.GetPropertyValue<string>("metaDescription");
Photo = content.GetPropertyValue<IPublishedContent>("metaHeaderImage");
}
public IPublishedContent Photo { get; set; }
public string Name { get; set; }
public string Description { get; set; }
}
}
Meta.cshtml如下所示:
@model Meta
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>@Model.Name</title>
<meta name="description" content="@Model.Description">
<meta property="og:title" content="@Model.Name" />
<meta property="og:image" content="@Model.Photo" />
_layout.cshtml中对部分视图的调用是:
@Html.Partial("Meta", Model.Meta)
我想知道错误意味着什么,可能的解决方案会很棒。
PS。我过去做过一个项目,部分视图设置与此次相同。那时它工作得很好。不,我已经不再访问这个旧项目了。
如果解决方案中有两个具有相同名称的类,并且代码无法决定使用哪个类,则会出现不明确的引用错误。在你的情况下,类Meta
存在于Namespace.Model
和Umbraco.Web.PublishedContentModels
。您可以通过使用完全限定的类名来更改Meta.cshtml文件以引用正确的Meta
类。
@model Namespace.Model.Meta