2013-02-25 103 views
0

贴我有一个下拉列表containining检索值在下拉列表

{ 
    Select a title, 
    Mr, 
    Ms, 
    Mrs 
} 

这是这样

//in model file 
Mymodel mm=new Mymodel(); 
mm.Titles=new [] 
{ 
    new SelectListItem{....} 
} 

..... 
//in view file and was set up inside a form 

@Html.DropDownListFor(m=>m.Title, Model.Titles,"Select a title"); 

初始化我点击后提交按钮,我想在下拉列表中得到slected值。

+0

您可以参考这里 http://stackoverflow.com/questions/5371665/dropdownlistfor-selected-value – c0dem0nkey 2013-02-25 06:57:05

回答

2

你可以有到表单提交采取了同样的观点模型参数的[HttpPost]控制器动作:

[HttpPost] 
public ActionResult SomeAction(Mymodel model) 
{ 
    // the model.Title property will contain the selected value here 
} 

另外,Titles集合将不会被发送到您的HttpPost行动。这就是HTML的工作原理。提交表单时,仅发送<select>元素的选定值。因此,如果您打算重新显示相同的视图,则需要重新填充Titles属性。

例如:

[HttpPost] 
public ActionResult SomeAction(Mymodel model) 
{ 
    if (!ModelState.IsValid) 
    { 
     // there was a validation error, for example the user didn't select any title 
     // and the Title property was decorated with the [Required] attribute => 
     // repopulate the Titles property and show the view 
     model.Titles = .... same thing you did in your GET action 
     return View(model); 
    } 

    // at this stage the model is valid => you could use the model.Title 
    // property to do some processing and redirect 
    return RedirectToAction("Success"); 
}