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

时间:2015-08-04 16:12:02

标签: .net asp.net-mvc asp.net-mvc-4 razor data-annotations

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

我想将模型的属性绑定到资源字符串,因此在使用@HTML.LabelFor(model => model.Property)时,它会使用正确的资源字符串进行渲染。我知道可以通过在模型中添加以下行来使用数据转换进行绑定:

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

这种方法并不好,因为当我想从数据库更新我的模型时,它将被覆盖。但是在项目中,我正在处理属性绑定到正确的资源字符串而不在模型中添加数据注释,但我无法弄清楚如何为数据库中新添加的属性执行此操作。 有没有人知道如何在不添加数据注释的情况下将资源字符串绑定到模型属性?

修改

这是一段视图:

<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>

1 个答案:

答案 0 :(得分:0)

您是否使用Entity Framework生成模型?

因为如果是这种情况,有一种方法可以添加数据注释而无需手动编辑生成的代码,它被称为元数据类,下面是具体示例:Add data annotations to a class generated by entity framework

如果不是,我建议使用数据传输对象类和您需要的注释以及模型属性的映射器。 Source