Asp.net mvc 4 多语言错误消息

Asp.net mvc 4 多语言错误消息,asp.net-mvc-4,Asp.net Mvc 4,大家好, 我对我目前的开发有疑问,问题是我已经创建了一个项目,使用ntier和数据应用程序块作为我的数据访问层,我有一个名为Entities的包,我在其中创建了所有类,我试图使用映射到资源文件的错误消息。问题是,当我编写以下代码时,它标记为错误: (实体基础客户) 在下面的代码中,它在“Resources”(我放置资源文件的文件夹)中标记错误,“Language”是资源文件 但是当我在“Model”文件夹上做完全相同的事情时,没有标记任何错误 (示范客户) 我做错什么了吗?我是否缺少RF的参考或

大家好,

我对我目前的开发有疑问,问题是我已经创建了一个项目,使用ntier和数据应用程序块作为我的数据访问层,我有一个名为Entities的包,我在其中创建了所有类,我试图使用映射到资源文件的错误消息。问题是,当我编写以下代码时,它标记为错误:

(实体基础客户)

在下面的代码中,它在“Resources”(我放置资源文件的文件夹)中标记错误,“Language”是资源文件

但是当我在“Model”文件夹上做完全相同的事情时,没有标记任何错误

(示范客户)

我做错什么了吗?我是否缺少RF的参考或配置


提前感谢

这是一个老问题。为了解决这个问题,我停用了EDMX代码生成,并创建了外部TT文件来生成: DomainLayer:包含EF EDMX类(带导航)

数据层:包含用于查询数据的内容

[Serializable]
public partial class Contact : _DomainLayer_Base  
{
    #region Primitive Properties

    /// <summary>
    /// Gets or sets Id.
    /// </summary>
    /// <value>The Id.</value>
    public virtual int Id
    {
        get;
        set;
    }

    /// <summary>
    /// Gets or sets FK_Language.
    /// </summary>
    /// <value>The FK_Language.</value>
    /// <remarks>
    /// Foregn key of Contact
    /// 
    /// </remarks>
    public virtual int FK_Language
    {
        get { return _fK_Language; }
        set
        {
            try
            {
                _settingFK = true;
                if (_fK_Language != value)
                {
                    if (Language != null && Language.Id != value)
                    {
                        Language = null;
                    }
                    _fK_Language = value;
                }
            }
            finally
            {
                _settingFK = false;
            }
        }
    }
}
元模型:在门户内部,元模型是元数据成员容器。它们包含门户所需的数据。示例:如果有外键,则ForeignKey值将位于元数据中,但用于填充查找的ListItems将位于元模型中。 EntityLayer:包含EF EDMX

当我创建一个EF查询时,我用db作为结果前缀:

在视图中使用数据时,我使用MetaDataLayer:

public class ContactViewer_MetaModel : Contact_MetaData
为了将T数据从DomainLayer传输到MetaDataLayer,我使用Emit Mapper,因为我的TT文件保证域和元数据之间具有相同的签名

toReturn = ObjectMapperManager.DefaultInstance.GetMapper<Contact, ContactViewer_MetaModel>().Map(dbContact);
toReturn=ObjectMapperManager.DefaultInstance.GetMapper().Map(dbContact);
并且认为:

@model InnovaApp.Layers.SecurityLayer.Models.MetaModels.Contact_MetaModel
@Html.HiddenFor(m => m.Id)
<ol class="olMainForm">
    <li>
        @Html.LabelFor(m => m.FK_Genre)
        @Html.DropDownListFor(m => m.FK_Genre, Model.Genres)
        @Html.ValidationMessageFor(m => m.FK_Genre)
    </li>
</ol>
@model InnovaApp.Layers.SecurityLayer.Models.MetaModels.Contact\u MetaModel
@Html.HiddenFor(m=>m.Id)
  • @LabelFor(m=>m.FK_体裁) @DropDownListFor(m=>m.FK_流派,Model.Genres) @Html.ValidationMessageFor(m=>m.FK_体裁)
  • 您可以在此处找到完整的源代码:

    这个容易多了

    public class ContactViewer_MetaModel : Contact_MetaData
    
    toReturn = ObjectMapperManager.DefaultInstance.GetMapper<Contact, ContactViewer_MetaModel>().Map(dbContact);
    
    @model InnovaApp.Layers.SecurityLayer.Models.MetaModels.Contact_MetaModel
    @Html.HiddenFor(m => m.Id)
    <ol class="olMainForm">
        <li>
            @Html.LabelFor(m => m.FK_Genre)
            @Html.DropDownListFor(m => m.FK_Genre, Model.Genres)
            @Html.ValidationMessageFor(m => m.FK_Genre)
        </li>
    </ol>
    
    [Display(Name = "Name"), Required(ErrorMessageResourceType = typeof(Resources.Resources), ErrorMessageResourceName ="nameHasToBeGiven")]
            public string name { get; set; }