Asp.net mvc 为什么会出现缺少类型映射配置错误?

Asp.net mvc 为什么会出现缺少类型映射配置错误?,asp.net-mvc,automapper,Asp.net Mvc,Automapper,我已经修改了Contosuniversity教程:现在我尝试使用AutoMapper将对象映射到对象 以下是我的模型视图: public class InstructorIndexData { public IEnumerable<Instructor> Instructors { get; set; } public IEnumerable<Course> Courses { get; set; } public IEnumerable<E

我已经修改了Contosuniversity教程:现在我尝试使用AutoMapper将对象映射到对象

以下是我的模型视图:

public class InstructorIndexData
{
    public IEnumerable<Instructor> Instructors { get; set; }
    public IEnumerable<Course> Courses { get; set; }
    public IEnumerable<Enrollment> Enrollments { get; set; }
    public IEnumerable<Student> Students { get; set; }
    public IEnumerable<Assignment> Assignments { get; set; }
}
代码在这里

[HttpPost]
public ActionResult ClassAttendance(InstructorIndexData viewModel)
{


    if (ModelState.IsValid)
    {

        AutoMapper.Mapper.CreateMap<AttendanceData, Assignment>();
        AutoMapper.Mapper.CreateMap<AttendanceData, Enrollment>();
        AutoMapper.Mapper.CreateMap<AttendanceData, Student>();
        AutoMapper.Mapper.CreateMap<AttendanceData, Instructor>();

        Instructor newInstructor = new Instructor();
        Student newStudent = new Student();
        Assignment newAssignment = new Assignment();
        Enrollment newEnrollment = new Enrollment();

        AutoMapper.Mapper.Map(viewModel, newInstructor );
        AutoMapper.Mapper.Map(viewModel, newStudent);
        AutoMapper.Mapper.Map(viewModel, newEnrollment);
        AutoMapper.Mapper.Map(viewModel, newAssignment);

        db.Assignments.AddObject(newAssignment).;

        db.SaveChanges();
        return RedirectToAction("Index");
    }

    return View();
}
[HttpPost]
公共行动结果课堂出勤率(讲师索引数据视图模型)
{
if(ModelState.IsValid)
{
AutoMapper.Mapper.CreateMap();
AutoMapper.Mapper.CreateMap();
AutoMapper.Mapper.CreateMap();
AutoMapper.Mapper.CreateMap();
讲师new讲师=新讲师();
学生新闻学生=新学生();
赋值newAssignment=新赋值();
Enrollment newEnrollment=新注册();
AutoMapper.Mapper.Map(viewModel,New讲师);
AutoMapper.Mapper.Map(viewModel,newStudent);
AutoMapper.Mapper.Map(viewModel,newEnrollment);
AutoMapper.Mapper.Map(viewModel,newAssignment);
db.Assignments.AddObject(newAssignment)。;
db.SaveChanges();
返回操作(“索引”);
}
返回视图();
}
当我调试代码时,代码停在这里“AutoMapper.Mapper.Map(viewModel,new讲师);”出现此错误时: 缺少类型映射配置或不支持的映射

映射类型: 讲师索引数据->讲师 SchoolIn.ViewModels.Instructor索引数据->SchoolIn.Models.Instructor

目标路径: 指导员

源值: SchoolIn.ViewModels.Instructor索引数据


Any iI还注意到,在我的ActionResult(InstructorIndexData viewModel)中,viewModel具有所有空值

根据我的理解,viewModel的类型是Instructor IndexData。如果是,则需要添加配置:

    AutoMapper.Mapper.CreateMap<InstructorIndexData, Assignment>();
    AutoMapper.Mapper.CreateMap<InstructorIndexData, Enrollment>();
    AutoMapper.Mapper.CreateMap<InstructorIndexData, Student>();
    AutoMapper.Mapper.CreateMap<InstructorIndexData, Instructor>();
AutoMapper.Mapper.CreateMap();
AutoMapper.Mapper.CreateMap();
AutoMapper.Mapper.CreateMap();
AutoMapper.Mapper.CreateMap();

viewModel字段的类型是什么?谢谢,我更改了CreateMap,现在代码在db.SaveChanges()处停止,并显示错误消息datetime2数据类型转换为datetime数据类型导致值超出范围。声明已终止。这可能是因为ViewModel在“ActionResult(InstructorIndexData ViewModel)”中有空值吗?是否键入了“datetime2数据类型到datetime”或者你真的有datetime2类型?这个问题与自动映射无关。我建议你单独问一个问题。无论如何,这里有一些关于这个主题的链接:这不是一个拼写错误…我在视图中使用datetime,但不是datetime2DateTime映射到数据库中的datetime2。
[HttpPost]
public ActionResult ClassAttendance(InstructorIndexData viewModel)
{


    if (ModelState.IsValid)
    {

        AutoMapper.Mapper.CreateMap<AttendanceData, Assignment>();
        AutoMapper.Mapper.CreateMap<AttendanceData, Enrollment>();
        AutoMapper.Mapper.CreateMap<AttendanceData, Student>();
        AutoMapper.Mapper.CreateMap<AttendanceData, Instructor>();

        Instructor newInstructor = new Instructor();
        Student newStudent = new Student();
        Assignment newAssignment = new Assignment();
        Enrollment newEnrollment = new Enrollment();

        AutoMapper.Mapper.Map(viewModel, newInstructor );
        AutoMapper.Mapper.Map(viewModel, newStudent);
        AutoMapper.Mapper.Map(viewModel, newEnrollment);
        AutoMapper.Mapper.Map(viewModel, newAssignment);

        db.Assignments.AddObject(newAssignment).;

        db.SaveChanges();
        return RedirectToAction("Index");
    }

    return View();
}
    AutoMapper.Mapper.CreateMap<InstructorIndexData, Assignment>();
    AutoMapper.Mapper.CreateMap<InstructorIndexData, Enrollment>();
    AutoMapper.Mapper.CreateMap<InstructorIndexData, Student>();
    AutoMapper.Mapper.CreateMap<InstructorIndexData, Instructor>();