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