如何在asp.net core MVC中从另一个具有验证的模型创建下拉列表?

如何在asp.net core MVC中从另一个具有验证的模型创建下拉列表?,asp.net,model-view-controller,drop-down-menu,dropdown,Asp.net,Model View Controller,Drop Down Menu,Dropdown,模型类.cs public class Class { public int ClassId { get; set; } [NotMapped] public string EncryptedId { get; set; } [Required] [Display(Name = "Class Name")] public string ClassName { get; set; }

模型类.cs

public class Class
    {
        public int ClassId { get; set; }

        [NotMapped]
        public string EncryptedId { get; set; }

        [Required]
        [Display(Name = "Class Name")]
        public string ClassName { get; set; }
    }
public class Subject
    {
        public int SubjectId { get; set; }

        [NotMapped]
        public string EncryptedId { get; set; }
        public string SubjectName { get; set; }
        public int ClassId { get; set; }
        public Class Class { get; set; }
    }
public class CreateSubjectViewModel
    {
        public int SubjectId { get; set; }

        [NotMapped]
        public string EncryptedId { get; set; }

        [Required]
        [Display(Name = "Subject Name")]
        public string SubjectName { get; set; }

        public int ClassId { get; set; }

        public int ClassesId { get; set; }
        public virtual List<Class> Classes { get; set; }
    }
模型主题.cs

public class Class
    {
        public int ClassId { get; set; }

        [NotMapped]
        public string EncryptedId { get; set; }

        [Required]
        [Display(Name = "Class Name")]
        public string ClassName { get; set; }
    }
public class Subject
    {
        public int SubjectId { get; set; }

        [NotMapped]
        public string EncryptedId { get; set; }
        public string SubjectName { get; set; }
        public int ClassId { get; set; }
        public Class Class { get; set; }
    }
public class CreateSubjectViewModel
    {
        public int SubjectId { get; set; }

        [NotMapped]
        public string EncryptedId { get; set; }

        [Required]
        [Display(Name = "Subject Name")]
        public string SubjectName { get; set; }

        public int ClassId { get; set; }

        public int ClassesId { get; set; }
        public virtual List<Class> Classes { get; set; }
    }
ViewModel CreateSubjectViewModel.cs

public class Class
    {
        public int ClassId { get; set; }

        [NotMapped]
        public string EncryptedId { get; set; }

        [Required]
        [Display(Name = "Class Name")]
        public string ClassName { get; set; }
    }
public class Subject
    {
        public int SubjectId { get; set; }

        [NotMapped]
        public string EncryptedId { get; set; }
        public string SubjectName { get; set; }
        public int ClassId { get; set; }
        public Class Class { get; set; }
    }
public class CreateSubjectViewModel
    {
        public int SubjectId { get; set; }

        [NotMapped]
        public string EncryptedId { get; set; }

        [Required]
        [Display(Name = "Subject Name")]
        public string SubjectName { get; set; }

        public int ClassId { get; set; }

        public int ClassesId { get; set; }
        public virtual List<Class> Classes { get; set; }
    }
公共类CreateSubjectViewModel
{
public int SubjectId{get;set;}
[未映射]
公共字符串EncryptedId{get;set;}
[必需]
[显示(Name=“主题名称”)]
公共字符串SubjectName{get;set;}
public int ClassId{get;set;}
public int ClassesId{get;set;}
公共虚拟列表类{get;set;}
}
控制器代码

[HttpGet]
public IActionResult CreateSubject()
{

    List<Class> classList = _context.Classes.ToList();
    ViewData["classList"] = classList.Select(x => new SelectListItem { Value = x.EncryptedId, Text = x.ClassName });
    return View();
}

[HttpPost]
public IActionResult CreateSubject(CreateSubjectViewModel model)
{
    if (ModelState.IsValid)
    {
        Subject newSubject = new Subject
        {
            //SubjectName = model.SubjectName,
            //here code for store data in subject table
        };
        _cdsRepository.AddSubject(newSubject);
        return RedirectToAction("ListClasses", "UDP");
    }

    return View(model);
}
[HttpGet]
public IActionResult CreateSubject()
{
List classList=_context.Classes.ToList();
ViewData[“classList”]=classList.Select(x=>newselectListItem{Value=x.encryptedd,Text=x.ClassName});
返回视图();
}
[HttpPost]
公共IActionResult CreateSubject(CreateSubjectViewModel模型)
{
if(ModelState.IsValid)
{
主题newSubject=新主题
{
//SubjectName=model.SubjectName,
//这里是在主题表中存储数据的代码
};
_cdsRepository.AddSubject(newSubject);
返回重定向操作(“列表类”、“UDP”);
}
返回视图(模型);
}
如何从
Class.cs
获取数据,并在单击按钮时正确验证下拉列表并在下拉列表中显示数据

如果一切正常,则使用类Id值将数据存储在
Subject.cs