您可以使用javascript获取选定的值:
var dropdown = document.getElementById("YourDropdown");
var selectedValue = dropdown.options[dropdown.selectedIndex].value;
在此之后,您可以使用 selectedValue 来检查用户选择的值是否有效。
但是,我不建议这样做。最好使用 Asp.net MVC 提供的工具。
首先,您应该创建一个模型来托管您需要显示下拉列表的属性,并在此模型中使用数据注释(可以在此处找到初学者的简单指南:http://msdn.microsoft.com/en-us/library/ee256141(v=vs.100).aspx)来验证其值。例如:
public class YouModel{
[Display(Name = "Month")]
[Required(ErrorMessage = "This field is required")]
public String SelectedMonth {get; set;}
public List<SelectListItem> Months {get; set;}
[Display(Name = "Employee Name")]
[Required(ErrorMessage = "This field is required")]
public int SelectedEmployee {get; set;}
public List<SelectListItem> EmployeeList {get; set;}
}
在你看来,你会:
@using location.of.YouModel
@using (Html.BeginForm("Generated_PaySlip", "Home", FormMethod.Get))
{
<fieldset>
@Html.LabelFor(m => m.SelectedMonth)
@Html.DropDownListFor(m => m.SelectedMonth, Model.Months)
@Html.ValidationMessageFor(m => m.SelectedMonth)
@Html.LabelFor(m => m.SelectedEmployee)
@Html.DropDownListFor(m => m.SelectedEmployee, Model.EmployeeList)
@Html.ValidationMessageFor(m => m.SelectedEmployee)
<input type="submit" value="Submit" />
</fieldset>
}
最后,在您的控制器中,您的操作将如下所示:
public ActionResult Generated_PaySlip(YourModel model){
// The ModelState.isValid will verify if your model is validated based on the data Anotations you used in the model. If not, will return false and you just have to return the model to the view you want and the framework will do the job of displaying the validation messages.
if (ModelState.isValid){
// do something
}
return View(model);
}
更新
public ActionResult InfoFor_PaySlip()
{
YourModel model = new YourModel();
var dates = (from ps in DataContext.MonthlyRecords select new {ps.Month }).Distinct();
model.Months = new SelectList(dates, "Month", "Month");
var names = (from n in DataContext.HrEmployees select new { n.EmplID, n.EmplName }).Distinct();
model.EmployeeList = new SelectList(names, "EmplID", "EmplName");
return View(model);
}