我是实体框架中的新手,我创建了Ado.Net Entity Data model
,其中包含两个属性FullName
和EmailAddress
。我想要做的是在我的详细信息视图中,我想显示Full Name
而不是FullName
。为此,我编写了这样的代码:
namespace ScaffFolding.Models
{
[MetadataType(typeof(EmployeeMetaData))]
public partial class Employee
{
}
public class EmployeeMetaData
{
[Display(Name="Full Name")]
public string FullName { get; set; }
[Display(Name = "Email Address")]
public string EmailAddress { get; set; }
}
}
我的edmx
文件也共享相同的命名空间,并且具有名为Employee
的相同类
现在的问题是,在Details
视图中,此代码无效,意味着显示FullName
而不是Full Name
,但在Create
中查看它的工作方式预计。
以下是我的Detail
视图的代码:
@model ScaffFolding.Models.Employee
@{
ViewBag.Title = "Details";
}
<h2>Details</h2>
<fieldset>
<legend>Employee</legend>
<div class="display-label">FullName</div>
<div class="display-field">
@Html.DisplayFor(model => model.FullName)
</div>
<div class="display-label">Gender</div>
<div class="display-field">
@Html.DisplayFor(model => model.Gender)
</div>
<div class="display-label">Age</div>
<div class="display-field">
@Html.DisplayFor(model => model.Age)
</div>
<div class="display-label">HireDate</div>
<div class="display-field">
@Html.DisplayFor(model => model.HireDate)
</div>
<div class="display-label">EmailAddress</div>
<div class="display-field">
@Html.DisplayFor(model => model.EmailAddress)
</div>
<div class="display-label">Salary</div>
<div class="display-field">
@Html.DisplayFor(model => model.Salary)
</div>
<div class="display-label">PersonalWebSite</div>
<div class="display-field">
@Html.DisplayFor(model => model.PersonalWebSite)
</div>
</fieldset>
<p>
@Html.ActionLink("Edit", "Edit", new { id=Model.Id }) |
@Html.ActionLink("Back to List", "Index")
</p>
有谁能告诉我这里出了什么问题?
答案 0 :(得分:1)
DisplayFor用于从DisplayTemplates文件夹中拾取模板。 更多What is the @Html.DisplayFor syntax for?
LabelFor从数据注释中选择内容
答案 1 :(得分:0)
好的,我得到了答案,这里出了什么问题。问题出在VS生成的代码中:
Visual Studio使用div标签生成Details
视图,如下所示
<div class="display-label">FullName</div>
Vistual Studio正在LabelFor
视图使用Create
的位置:
@Html.LabelFor(model => model.FullName)