部分视图给出了模棱两可的参考错误

时间:2019-03-23 11:05:41

标签: c# model-view-controller umbraco

我正在尝试使用部分视图将元数据和标头图像(单独的部分视图)呈现到_layout.cshtml中。在执行此操作时,出现以下错误:CS0104:“元”是“名称空间。模型。元”和“ Umbraco.Web.PublishedContentModels.Meta”之间的模棱两可

我尝试将Meta的名称更改为其他名称,即使是无意义的键盘旋转,例如dfguyfgfjhagjhsgf。仍然无法正常工作。

meta.cs类别如下:

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。过去,我已经完成了一个项目,并为此设置了部分视图的设置。当时效果还不错。不,我不再同意这个较早的项目。

1 个答案:

答案 0 :(得分:2)

当解决方案中有两个具有相同名称的类并且代码无法确定要使用哪个类时,就会出现歧义引用错误。在您的情况下,MetaNamespace.Model中都存在类Umbraco.Web.PublishedContentModels。您可以使用完全限定的类名来更改 Meta.cshtml 文件以引用正确的Meta类。

@model Namespace.Model.Meta