2017-07-11 47 views
0

模型 - Employee.csMVC - 在下拉选择更改标签(S) - 强类型查看

public class Employee 
{ 
    public int id { get; set; } 
    public string name { get; set; } 
    public int age { get; set; } 

    public List<Employee> lstEmployees { get; set; } 
} 

控制器 - EmpController.cs

public ActionResult Index() 
    { 
     Employee emp = new Employee(); 
     emp.lstEmployees = new List<Employee>(); 
     emp.lstEmployees.Add(new Employee() { id = 1, name = "ABCD", age = 15 }); 
     emp.lstEmployees.Add(new Employee() { id = 2, name = "EFGH", age = 25 }); 
     emp.lstEmployees.Add(new Employee() { id = 3, name = "IJKL", age = 35 }); 

     ViewBag.EmpList = emp.lstEmployees; 

     return View(); 
    } 

VIEW - 指数。 cshtml

@Html.DropDownListFor(m => m.id, new SelectList(ViewBag.EmpList, "id", "name"), new { onchange = "SelectedIndexChanged(this)" }) 


    <script type="text/javascript"> 
    function SelectedIndexChanged(p) { 

    } 
    </script> 

我想在标签上显示年龄 @Html.LabelFor(model => model.age) 关于下拉选择的更改。

+0

尝试答案我已经给了,并让我知道.. – SwapNeil

+0

检查编辑答案,我已经给出 – SwapNeil

回答

1

试试这个..

<script type="text/javascript"> 
    function SelectedIndexChanged(element) { 
    var optionSelected = $("option:selected", element); 
    var selectedAge = $(optionSelected).attr('data-age'); 
    $('label[for="age"]').text(selectedAge); 
    } 
</script> 

它将与下拉值添加标签文本.. 你也可以用这个尝试:$('label[for="age"]').html(selectedAge);

编辑:

<select name="id" id="id" onchange="SelectedIndexChanged(this)"> 
    @if(ViewBag.EmpList != null) 
    { 
     foreach(var item in ViewBag.EmpList){ 
      <option value="@item.id" data-age="@item.age">@item.name</option> 
     } 
    } 
</select> 
+0

他只想要的人**年龄**不是整个值 –

+0

@BasantaMatia检查编辑的代码.. – SwapNeil