首页 / 问答 / [ASP.NET Core]ASP.NET Core MVC应用程序编程开发中如何绑定下拉框标签辅助类(Select Tag Helper)?

[ASP.NET Core]ASP.NET Core MVC应用程序编程开发中如何绑定下拉框标签辅助类(Select Tag Helper)?

0

在ASP.NET Core MVC应用程序编程开发中,需要使用下拉框来绑定数据源,这里使用了ASP.NET Core MVC的下拉框标签辅助类-Select Tag Helper,比如当前有一个关于员工的集合List<Employee> EmployeesList,下拉框选中值将绑定到EmployeeId属性上,假如员工实例模型MyViewModel如下:

public class MyViewModel
{
   public int EmployeeId { get; set; }
   public string Comments { get; set; }
   public List<Employee> EmployeesList {get; set; }
}

员工Employee的实例模型如下:

public class Employee
{
   public int Id { get; set; }
   public string FullName { get; set; }
}

那么,现在如何将下拉框的值绑定为Id,显示文本绑定为FullName呢?

<select asp-for="EmployeeId" asp-items="???" />
回复 [×]
提交评论
请输入评论内容

7 个回答

  • 0

    在ASP.NET Core MVC中,我们可以使用Select Tag Helper来渲染下拉框。

    首先,需要在GET请求中创建一个视图模型,然后加载下拉框的数据源到这个视图模型中并返回来视图,如下:

    然后,在视图文件中,使用后端传递过来的EmployeesList集合创建一个新的SelectList对象,并将数据绑定到asp-items属性上,如下:

    最后,你便可以在POST请求中获取到前面页面表单传回的下拉框的选中值,如下:

    或者

    如果你的视图模型中包含了List<SelectListItem>的下拉框属性,比如:

    GET请求中对这个下拉框数据源属性赋值,如下:

    最后,我们可以在视图文件中直接使用Employess作为asp-items的属性值,如下:

    注:SelectListItem位于命名空间Microsoft.AspNet.Mvc.Rendering中。

    Rector的个人主页

    Rector

    2021-01-19 回答

    • 0

      如果你的数据源是存储在像SQL Server这样的数据库中, 那么你还可以使用Entity Framework/Entity Framework Core从持久化数据仓库中读取,并渲染到视图中的下拉框中,比如数据模型如下:

      下拉框的视图模型如下:

      在后端的GET请求中,使用Entity Framework Core的DbContext读取数据,如下:

      在视图文件中使用下拉框标签如下:

      Rector的个人主页

      Rector

      2021-01-19 回答

      • 0

        有时候,如果你还需要将一个字符串集合作为下拉框的数据源,则可以如下操作:

        视图文件绑定如下:

        Rector的个人主页

        Rector

        2021-01-19 回答

        • 0

          如果你还需要为下拉框设置默认的选中值,则可以在GET请求中如下操作:

          视图文件绑定如下:

          Rector的个人主页

          Rector

          2021-01-19 回答

          • 0

            如果需要将下拉框设置为多选,则可以将视图模型设置为数组,如下:

            然后,在视图文件中设置multiple="multiple"属性,如下:

            Rector的个人主页

            Rector

            2021-01-19 回答

            • 0

              如果你想对下拉框的选中进行分组,则可以:

              Rector的个人主页

              Rector

              2021-01-19 回答

              • 0

                我们还可以创建自定义的<options>标签帮助类,如下:

                视图模型需继承自IIntegerListItem接口,如下:

                视图文件中使用自定义的<options>标签帮助类,如下:

                Rector的个人主页

                Rector

                2021-01-19 回答

                我来回答