Tôi đang làm việc với MVC3 và sử dụng Entity Framework 4.0 Entities làm mô hình của tôi. Cho đến nay, tất cả mọi thứ hoạt động tốt như xa như sử dụng nó như là một mô hình (tất cả các hoạt động crud/thế hệ trang làm việc ra khỏi hộp). Tôi tự hỏi, tuy nhiên, làm cách nào để bạn có được các nhãn và thông tin xác thực mạnh mẽ giống như khi bạn tạo mô hình theo cách thủ công?Sử dụng System.ComponentModel.DataAnnotations with Entity Framework 4.0
Đây là ví dụ về ý tôi. Đây là một lớp được tạo ra bởi dự án mẫu MVC3:
public class LogOnModel
{
[Required]
[Display(Name = "User name")]
public string UserName { get; set; }
[Required]
[DataType(DataType.Password)]
[Display(Name = "Password")]
public string Password { get; set; }
[Display(Name = "Remember me?")]
public bool RememberMe { get; set; }
}
Với ví dụ trên, bạn có thể xác định những gì được kết xuất trong một nhãn cho trường (Display), và những loại lĩnh vực sử dụng (Password). Tuy nhiên, khi tôi cố gắng sử dụng khung thực thể và đẩy nó vào chế độ xem bên dưới, tôi thấy các nhãn được tạo tự động chỉ là tên trường và không phải bất kỳ điều gì tôi muốn người dùng xem/phải đọc:
@using (Html.BeginForm()) {
@Html.ValidationSummary(true)
<fieldset>
<legend>Person</legend>
<div class="editor-label">
@Html.LabelFor(model => model.FirstName)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.FirstName)
@Html.ValidationMessageFor(model => model.FirstName)
</div>
<div class="editor-label">
@Html.LabelFor(model => model.MiddleName)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.MiddleName)
@Html.ValidationMessageFor(model => model.MiddleName)
</div>
<div class="editor-label">
@Html.LabelFor(model => model.LastName)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.LastName)
@Html.ValidationMessageFor(model => model.LastName)
</div>
<div class="editor-label">
@Html.LabelFor(model => model.Birthdate)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.Birthdate)
@Html.ValidationMessageFor(model => model.Birthdate)
</div>
<p>
<input type="submit" value="Create" />
</p>
</fieldset>}
Câu hỏi của tôi là: Làm cách nào để thêm các trang trí bổ sung này vào thực thể được tạo bằng EF4? Có gì ngoài System.ComponentModel.DataAnnotations mà tôi nên sử dụng không? Tôi biết các thực thể được tái tạo và có lẽ không phải là một ý tưởng tốt để thêm mã này vào mã của các thực thể trực tiếp, nhưng vì một lý do nào đó tôi không thể nghĩ ra cách tiếp cận tốt hơn là nhập văn bản nhãn vào chế độ xem (lame, không có lý do gì để phải làm điều đó, đây là MVC!). Tôi muốn giữ nó để ứng dụng đủ năng động để có thể có thông tin hiển thị chính xác cho mô hình của tôi đi qua và giữ một cách tiếp cận MVC. Tôi phải làm nó như thế nào?
Related: http://stackoverflow.com/q/2999936/11912 –