2014-07-03 15 views
0

我正在嘗試構建具有多個下拉列表的Web應用程序。我在我的模型中使用了枚舉來填充這些下拉列表,並且在我的視圖中有一個來自提交按鈕。我試圖弄清楚如何從1個按鈕單擊下拉菜單中的所有選定索引。從MVC Web應用程序中的多個下拉列表中獲取選定的值

我的控制器看起來是這樣的:

public class HomeController : Controller 
{ 
    public ActionResult Index() 
    { 

     var model = new DropDownModel(); 


     return View(model); 
    } 
    [HttpPost] 
    public ActionResult Index(DropDownModel model) 
    { 
     // Get the selected value 
     int id = model.SelectedId; 

     return View(); 
    } 


    public ActionResult About() 
    { 

     return View(); 
    } 
} 

下拉在我看來:

@Html.DropDownListFor(x => x.SelectedId, Enum.GetNames(typeof(BTSWeb.Models.BillTemplate)).Select(e => new SelectListItem { Text = e }),"--BillTemplate--",new { style = "width:108px;font-size:90%;border-radius: 6.5px 6.5px 6.5px 6.5px" }) 
        <span style="margin-left:1px"></span> 

    @Html.DropDownListFor(x => x.SelectedId, Enum.GetNames(typeof(BTSWeb.Models.ReadType)).Select(e => new SelectListItem { Text = e }),"--Read Type--",new { style = "width:70px;font-size:90%;border-radius: 6.5px 6.5px 6.5px 6.5px" }) 



<input type="submit" value="Submit" hidden="hidden"/> 

和我的模型:

namespace BTSWeb.Models 
{ 
public enum States { ANY, FL, TX, GA, NE }; 
public enum PaymentType { ANY, Email, Paper, No }; 

public class DropDownModel 
{ 

public int SelectedId { get; set; } 



    } 
} 
+0

你必須傳遞價值以及你目前只傳遞SelectList項的文本 –

+0

你能更具體一點,也將解決從我所有的下拉列表中獲取值而不僅僅是一個? – nitinsh99

+0

''e => new SelectListItem {Text = e}''您沒有傳遞值''e => new SelectListItem {Text = e,Value =「1」}'' –

回答

0

問題是你正在使用DropDownModel爲您查看模型。你將只能使用這個來填充selectedID。你需要做的是什麼樣的

public class ViewModel 
{ 

public int SelectedStateId { get; set; } 
public int SelecPaymentTypeId { get; set; } 


} 

服用點,然後在你的控制器,你會通過在

var viewModel = new ViewModel() 
return View(ViewModel); 

,並在你的看法,你將有

@Html.DropDownListFor(x => x.SelectedStateId, Enum.GetNames(typeof(BTSWeb.Models.BillTemplate)).Select(e => new SelectListItem { Text = e }),"--BillTemplate--",new { style = "width:108px;font-size:90%;border-radius: 6.5px 6.5px 6.5px 6.5px" }) 
        <span style="margin-left:1px"></span> 

    @Html.DropDownListFor(x => x.SelecPaymentTypeId , Enum.GetNames(typeof(BTSWeb.Models.ReadType)).Select(e => new SelectListItem { Text = e }),"--Read Type--",new { style = "width:70px;font-size:90%;border-radius: 6.5px 6.5px 6.5px 6.5px" }) 

終於在控制器後方法你會有

[HttpPost] 
    public ActionResult Index(ViewModelmodel) 
    { 
     // Get the selected value 
     int id = model.SelectedStateId; 
     int id2 = model.SelecPaymentTypeId; 

     return View(); 
    } 
相關問題