部分视图给出了模糊的引用错误

问题描述 投票:1回答:1

我正在尝试使用局部视图将元数据和标题图像(单独的局部视图)渲染到_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。我过去做过一个项目,部分视图设置与此次相同。那时它工作得很好。不,我已经不再访问这个旧项目了。

c# model-view-controller umbraco
1个回答
2
投票

如果解决方案中有两个具有相同名称的类,并且代码无法决定使用哪个类,则会出现不明确的引用错误。在你的情况下,类Meta存在于Namespace.ModelUmbraco.Web.PublishedContentModels。您可以通过使用完全限定的类名来更改Meta.cshtml文件以引用正确的Meta类。

@model Namespace.Model.Meta
© www.soinside.com 2019 - 2024. All rights reserved.