部分视图给出了不明确的引用错误
Partial view gives ambiguous reference error
我正在尝试使用局部视图将元数据和 header 图像(单独的局部视图)渲染到 _layout.cshtml 中。执行此操作时出现以下错误:CS0104:'Meta' 是 'Namespace.Models.Meta' 和 '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。我过去用与这次相同的部分视图设置完成了一个项目。那时候它工作得很好。不,我不再访问这个旧项目。
当您的解决方案中有两个同名的 class 并且代码无法决定使用哪一个时,就会出现不明确的引用错误。在您的情况下,class Meta
出现在 Namespace.Model
和 Umbraco.Web.PublishedContentModels
中。您可以像这样使用完全限定的 class 名称来更改 Meta.cshtml 文件以引用正确的 Meta
class。
@model Namespace.Model.Meta
我正在尝试使用局部视图将元数据和 header 图像(单独的局部视图)渲染到 _layout.cshtml 中。执行此操作时出现以下错误:CS0104:'Meta' 是 'Namespace.Models.Meta' 和 '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。我过去用与这次相同的部分视图设置完成了一个项目。那时候它工作得很好。不,我不再访问这个旧项目。
当您的解决方案中有两个同名的 class 并且代码无法决定使用哪一个时,就会出现不明确的引用错误。在您的情况下,class Meta
出现在 Namespace.Model
和 Umbraco.Web.PublishedContentModels
中。您可以像这样使用完全限定的 class 名称来更改 Meta.cshtml 文件以引用正确的 Meta
class。
@model Namespace.Model.Meta