2015-03-13 61 views
0

从视图中选择并执行回发之后,我无法获取所选下拉框中的值。我的代码模型如下模型中的值在回发后丢失在控制器中

代码控制器

public ActionResult Index() 
     { 
      SeleniumModel model = new SeleniumModel(); 
      model.BrowserList.Add(new SelectListItem { Text = "Internet Explorer", Value = "ie" }); 
      model.BrowserList.Add(new SelectListItem { Text = "FireFox", Value = "firefox" }); 
      model.BrowserList.Add(new SelectListItem { Text = "Chrome", Value = "chrome" }); 

      model.EnviormentList.Add(new SelectListItem { Text = "Local", Value = "ie" }); 
      model.EnviormentList.Add(new SelectListItem { Text = "Dev", Value = "dev" }); 
      model.EnviormentList.Add(new SelectListItem { Text = "Uat", Value = "uat" }); 


      return View("Index", model); 
     } 

代码视图

public class SeleniumModel 
    { 
     public SeleniumModel() 
     { 
      BrowserList = new List<SelectListItem>(); 
      EnviormentList = new List<SelectListItem>(); 
     } 


     public List<SelectListItem> BrowserList 
     { 
      get; 
      set; 
     } 

     public List<SelectListItem> EnviormentList 
     { 
      get; 
      set; 
     } 
    } 

代码

<div class="fields"> 
       <div> 
        @Html.LabelFor(model => model.Browser) 
        @Html.DropDownListFor(model => model.BrowserList,Model.BrowserList) 
       </div> 
      </div> 

       <div class="fields"> 
       <div> 
        @Html.LabelFor(model => model.Enviornment) 
        @Html.DropDownListFor(model => model.EnviormentList,Model.EnviormentList) 
       </div> 
+1

你需要在模型中绑定到单独的属性 - public string SelectedBrowser {get;组; }'和'@ Html.DropDownListFor(m => m.SelectedBrowser,Model.BrowserList)' – 2015-03-13 06:18:18

+0

从你的观点看来,你已经拥有一个名为'Browser'的属性(在标签中使用),所以你可能想要绑定到 – 2015-03-13 06:23:56

+0

由于@Stephen Muecke评论说,绑定您的'浏览器'属性到选定的项目:'@ Html.DropDownListFor(m => m.Browser,Model.BrowserList)''。对'环境'做同样的事情。 – vortex 2015-03-13 07:16:02

回答

0

您可能需要您的SeleniumModel修改,以容纳您所需的选定浏览器

 public SeleniumModel() 
     { 
      SelectedBrowser = ""; 
      BrowserList = new List<SelectListItem>(); 
      EnviormentList = new List<SelectListItem>(); 
     } 

     public String SelectedBrowser 
     { 
      get; 
      set; 
     } 

     public List<SelectListItem> BrowserList 
     { 
      get; 
      set; 
     } 

     public List<SelectListItem> EnviormentList 
     { 
      get; 
      set; 
     } 

在你看来,尝试这样

@Html.DropDownListFor(model => model.SelectedBrowser, Model.BrowserList) 

东西当你的控制器接受从视图模型,你就能够得到使用模型的SelectedBrowser财产所选择的浏览器。