6

我在我的编辑器模板中收到以下错误ApplicantAddressMode

错误 CS0019:运算符“!=”不能应用于“Comair.RI.ViewModels.ApplicantAddressType”和“Comair.RI.Models.ApplicantTypesOfAddress”类型的操作数”}

该类型Comair.RI.ViewModels.ApplicantAddressType无处可寻。仅针对所有文件的全局解决方案搜索ApplicantAddressType不返回任何结果。我将枚举的名称Comair.RI.ModelsApplicantAddressTypetoApplicantTypesOfAddress更改为试图避免无意匹配,并清除了 32 位和 64 位 ASP Internet 临时文件,但编辑器模板的这一行仍然存在错误:

@using Comair.RI.Models
@model Comair.RI.ViewModels.ApplicantAddressModel
@Html.ValidationSummary(true)
<fieldset>
    <legend>@Model.AddressTypeDescription</legend>
    <ul class="form-column">
        @if (Model.AddressType != ApplicantTypesOfAddress.Residential)
        {

Model.AddressType声明为:

[ScaffoldColumn(false)]
public ApplicantTypesOfAddress AddressType { get; set; }

我不知所措,即将开始四处投掷燃烧的尖旗,例如IsResidentialStreetNumberIsPostalSuburb。我不认为救护车会在那之后很长时间到达并带我去和平。

枚举声明是这样的:

namespace Comair.RI.Models
{
    public enum ApplicantTypesOfAddress
    {
        Residential,
        Postal
    }
}
4

1 回答 1

2

怀疑丢失的 tpe 在项目中未包含的文件中声明。当您告诉 VS 在编译时构建视图时,通常只在渲染它们之前执行,而不是在构建应用程序程序集时,它会构建所有视图,并使用它们引用的任何文件,无论它们是否包含在项目中.

Jim Lamb有一篇关于如何执行此操作的好帖子,名为Turn on Compile-time View Checking for ASP.NET MVC Projects in TFS Build 2010

不过,我不知道TFS Build部分。我不使用它,在我的情况下,只需将以下元素添加到我的.csproj文件中就可以了。注意,如果MvcBuildViews元素已经存在,它的文本值必须为真。

<PropertyGroup>
    <MvcBuildViews>true</MvcBuildViews>
</PropertyGroup>

买者自负。

于 2013-02-24T08:21:38.717 回答