2012-06-14 21 views
8

Đội ngũ mvc asp.net có triển khai mô hình mặc định ràng buộc cho enums không? Một trong đó là ra khỏi hộp và không có nhu cầu tạo ra một chất kết dính mô hình tùy chỉnh cho enums.Làm thế nào để thực hiện một mô hình asp.net mvc 4 ràng buộc cho enums?

CẬP NHẬT:
Giả sử tôi có một hành động sẽ nhận mô hình xem và đối tượng JSON sẽ được đăng lên hành động.

jsObj{id:2, name:'mike', personType: 1} 

và mô hình điểm:

class ViewModel 
{ 
    public int id {get;set;} 
    public string name {get;set;} 
    public PersonType personType{get;set;} 
} 

public enum PersonType : int 
{ 
    Good = 1, 
    Bad = 2, 
    Evil = 3 
} 

loại người sẽ bị ràng buộc?

Trả lời

4

Nó đã có ngay cả với các phiên bản trước đó. Giá trị biểu mẫu html và Gender = Male này được liên kết chính xác với thuộc tính enum Gender.

<select id="Gender" name="Gender"> 
    <option value="Male">Male</option> 
    <option value="Female">Femal</option> 
</select> 

Đối với phía máy chủ tôi tìm thấy nó dễ dàng nhất để sử dụng chọn danh sách trong mô hình quan điểm của tôi

public class User 
{ 
    public UserType UserType { get; set; } 

    public IEnumerable<SelectListItem> UserTypesSelectList { get; set; } 

    public User() 
    { 
     UserTypesSelectList = Enum.GetNames(typeof(UserType)).Select(name => new SelectListItem() 
     { 
      Text = name, 
      Value = MakeEnumMoreUserFriendly(name) 
     }); 
    } 
} 

public enum UserType 
{ 
    First, 
    Second 
} 

Và theo quan điểm

@Html.DropDownListFor(model => model.UserType, Model.UserTypesSelectList) 
+0

tnks! nhưng tôi đã quan tâm nhiều hơn đến cách nó hoạt động với các đối tượng json – CoffeeCode

+0

Im rất can đảm vì sao bạn không thử nó :). Nó hoạt động với json giống như với các bài viết dạng thứ tự. Đọc thêm về các nhà cung cấp giá trị http://bradwilson.typepad.com/blog/2010/10/service-location-pt8-value-providers.html – archil

+0

Ràng buộc với một enum từ một đối tượng json không hoạt động đối với tôi trong MVC3. Không chắc chắn chúng tôi không làm điều gì đó ngốc nghếch. – nportelli

Các vấn đề liên quan