gpt4 book ai didi

asp.net-mvc-4 - 多种语言的错误信息

转载 作者:行者123 更新时间:2023-12-01 06:32:12 26 4
gpt4 key购买 nike

今天是个好日子,

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

(基于实体的客户)

public partial class Clients {

public Int32 Id {get;set;}
[Display(Name="Name",
ResourceType=typeof(Resources.Language))]
[Required(AllowEmptyStrings=false,
ErrorMessageResourceName="Id",
ErrorMessageResourceType=typeof(Resources.Language))]
public string Name {get;set;}
}

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

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

(模特-客户)
public Int32 Id {get;set;}
[Display(Name="Name",
ResourceType=typeof(Resources.Language))]
[Required(AllowEmptyStrings=false,
ErrorMessageResourceName="Id",
ErrorMessageResourceType=typeof(Resources.Language))]
public string Name {get;set;}
}

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

提前致谢

最佳答案

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

DataLayer :包含查询数据的内容

[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;
}
}
}
}

MetaDataLayer :包含具有链接到资源的数据注释的 EF 独立类(无导航)
    [Serializable]
public partial class Contact_MetaData : _MetaDataLayer_Base
{
[Display(Name = "Ety_Contact_Id" , ResourceType = typeof(InnovaApp.Layers.ResourcesLayer.Properties.MetaDataResources))]
[Required(ErrorMessageResourceName = "ErrMsgRequired",ErrorMessageResourceType = typeof(InnovaApp.Layers.ResourcesLayer.Properties.Resources))]
public virtual int Id
{
get;
set;
}
[Display(Name = "Ety_Contact_FK_Language" , ResourceType = typeof(InnovaApp.Layers.ResourcesLayer.Properties.MetaDataResources))]
[Required(ErrorMessageResourceName = "ErrMsgRequired",ErrorMessageResourceType = typeof(InnovaApp.Layers.ResourcesLayer.Properties.Resources))]
public virtual int FK_Language
{
get;
set;

}

MetaModels :在门户内部,MetaModels 是 MetaData 成员容器。它们包含门户所需的数据。示例:如果您有外键,则 ForeignKey 值将在 MetaData 中,但用于填充查找的 ListItems 将在 MetaModel 中。
实体层:包含 EF EDMX

当我创建一个 EF 查询时,我在结果前加上 db :

当我在 View 中使用数据时,我使用我的 MetaDataLayer :
public class ContactViewer_MetaModel : Contact_MetaData

要将数据从 DomainLayer 传输到 MetaDataLayer,我使用 Emit Mapper,因为我的 TT 文件保证 Domain 和 MetaData 之间的签名相同。
toReturn = ObjectMapperManager.DefaultInstance.GetMapper<Contact, ContactViewer_MetaModel>().Map(dbContact);

并在 View 中:
@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>

你可以在这里找到完整的来源:

https://myprettycms.codeplex.com

关于asp.net-mvc-4 - 多种语言的错误信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19118228/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com