将模型属性绑定到资源字符串而不添加显示(名称= " ")



我参与了ASP。. NET MVC项目,这需要我完成它。因为我对MVC方法完全陌生,我发现了一些我无法理解的东西,我试图搜索它,但没有发现任何东西,我甚至不知道如何正确地问问题,所以请原谅我。

我想绑定一个模型的属性到一个资源字符串,所以当使用@HTML.LabelFor(model => model.Property)时,它得到了正确的资源字符串渲染。我知道它可以通过在模型中添加这一行来使用数据注释来绑定:

[Display(Name = "ResourceStringName", ResourceType = typeof(MyResource))]
string CompanyName {get; set;};

这种方法不是很好,因为当我想从数据库更新我的模型时,它将被覆盖。但在项目中,我正在工作的属性被绑定到正确的资源字符串没有在模型中添加数据注释,但我不知道如何做到这一点从数据库中添加的属性。有人知道如何绑定资源字符串模型属性不添加数据注释吗?

编辑

这是View的一部分:

<div class="form-group clearfix">
                    <label class="col-sm-4 col-sm-offset-1 control-label">
                        @Html.LabelFor(model => model.RejectedEmailTemplate)
                        <span class="template">@Infas.OnlineApplications.Resources.MyResource.RejectedEmailTemplate</span>
                    </label>
                    <div class="col-sm-6">
                        @Html.TextAreaFor(model => model.RejectedEmailTemplate, new { disabled = "disabled", @class = "emailTemplate form-control", rows = 12 })
                        @Html.ValidationMessageFor(model => model.RejectedEmailTemplate)
                    </div>
                </div>
                <div class="form-group clearfix">
                    <label class="col-sm-4 col-sm-offset-1 control-label">
                        @Html.LabelFor(model => model.ReturnApplicationEmailTemplate)
                        <span class="template">@Infas.OnlineApplications.Resources.MyResource.ReturnApplicationEmailTemplate</span>
                    </label>
                    <div class="col-sm-6">
                        @Html.TextAreaFor(model => model.ReturnApplicationEmailTemplate, new { disabled = "disabled", @class = "emailTemplate form-control", rows = 12 })
                        @Html.ValidationMessageFor(model => model.ReturnApplicationEmailTemplate)
                    </div>
                </div>

你正在使用实体框架生成你的模型吗?

因为如果有一种方法可以在不手动编辑生成的代码的情况下添加数据注释,它被称为元数据类,下面是具体的例子:向实体框架生成的类添加数据注释

如果没有,我建议使用数据传输对象类,其中包含您需要的注释和模型属性的映射器。源

最新更新