2014-07-20 23 views
0

我需要使用dropdownlist到剃刀和相关对象模型对象。如何获得默认选择到选择列表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> 

请建议我应该怎么变成模型对象,控制器和Razor视图来实现的默认选择下拉列表...任何最好的方式。

谢谢你

回答

0

我已经修改了下面的链接,它的工作成果。

dropdownlist set selected value in MVC3 Razor

在模型中,更改属性类型如下:

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

控制器动作:

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

查看情况如下:

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

它瓦特奥克斯...得到了默认选择。

谢谢