2014-07-20 9 views
0

면도날에 dropdownlist와 관련 객체를 model 객체로 사용해야합니다.selectlist에 기본 선택을하는 방법 MVC

개체의 기본 선택 값을 유지하고 싶지만 효과가 없습니다.

DTO 속성 및 컨트롤러 동작 및 면도기 구문을 유지할 수있는 가장 좋은 방법은 무엇이 될지 제안 할 수 있습니까?

public class StateDTO 
    { 
    public int ID { get; set; } 
    public string Name { get; set; } 

    } 


    public class RegisterModel 
      { 
      [Required] 
    [Display(Name = "User name", Order = 2)] 
    public string UserName { get; set; } 

    [Required] 
    [StringLength(100, ErrorMessage = "The {0} must be at least {2} characters long.", MinimumLength = 6)] 
    [DataType(DataType.Password)] 
    [Display(Name = "Password", Order = 3)] 
    public string Password { get; set; } 

    [DataType(DataType.Password)] 
    [Display(Name = "Confirm password", Order = 4)] 
    [Compare("Password", ErrorMessage = "The password and confirmation password do not match.")] 
    public string ConfirmPassword { get; set; } 

    [Display(Name = "Email Address", Order = 1)] 
    [DataType(DataType.EmailAddress)] 
    [Required(AllowEmptyStrings = false, ErrorMessage = "Please enter value")] 
    public string Email { get; set; } 

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

    public SelectListItem State { get; set; } 

} 


     public ActionResult Register() 
    { 

     RegisterModel r = new RegisterModel(); 
     IList<StateDTO> s = new List<StateDTO>(); 
     s.Add(new StateDTO() { ID = 1, Name = "CA" }); 
     s.Add(new StateDTO() { ID = 2, Name = "LA" }); 
     s.Add(new StateDTO() { ID = 3, Name = "AR" }); 
     r.State = new SelectListItem() { Text = s[2].Name, Value = s[2].ID.ToString(), Selected = true }; 
     r.States = new SelectList(s, "ID", "Name",r.State); 
     return View(r); 
     } 

보기 아래 관련 물건을 포함 : 아래

내 현재의 물건입니다

<div class="editor-label"> 
     @Html.LabelFor(model => model.State) 
    </div> 
    <div class="editor-field"> 
     @Html.DropDownListFor(model => model.State, Model.States) 
     @Html.ValidationMessageFor(model => model.State) 
    </div> 

내가의 기본 선택을 달성하기 위해 모델 객체, 컨트롤러와 면도기보기로 변경해야합니다 걸 제안하십시오 드롭 다운 목록 ... 모든 최선의 방법.

는 아래의 링크를 따라하고 밖으로 근무과 같이

답변

0

내가 물건을 수정 한 감사합니다.

public IEnumerable<SelectListItem> States { get; set; } 
    public int State { get; set; } 

컨트롤러 조치 : 모델에서

dropdownlist set selected value in MVC3 Razor

는 다음과 같이 속성 유형을 변경 한

<div class="editor-label"> 
      @Html.LabelFor(model => model.State) 
     </div> 
     <div class="editor-field"> 
      @Html.DropDownListFor(model => model.State, Model.States) 
      @Html.ValidationMessageFor(model => model.State) 
     </div> 

그것을 w :

 IList<StateDTO> s = new List<StateDTO>(); 
     s.Add(new StateDTO() { ID = 1, Name = "CA" }); 
     s.Add(new StateDTO() { ID = 2, Name = "LA" }); 
     s.Add(new StateDTO() { ID = 3, Name = "AR" }); 
     r.State = 3; 
     r.States = new SelectList(s, "ID", "Name",3); 

보기는 다음과 같다 orks ... 기본 선택이 있습니다.

감사합니다.