【问题标题】:MVC - Change Label(s) on DropDown Selection - Strongly Typed ViewMVC - 在下拉选择上更改标签 - 强类型视图
【发布时间】:2017-07-11 11:31:17
【问题描述】:

模型 - Employee.cs

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();
    }

查看 - Index.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 =&gt; model.age) 更改下拉列表的选择。

【问题讨论】:

  • 试试我给出的答案,然后告诉我..
  • 检查我给出的已编辑答案

标签: javascript jquery asp.net-mvc asp.net-mvc-4 razor


【解决方案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>

【讨论】:

  • 男人只想要年龄而不是全部价值
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-12-22
  • 2019-06-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多