在 ASP.NET MVC 中,有什么方法可以将数据从一个控制器传递到另一个控制器吗?

Is there any way to pass the data from one controller to another in ASP.NET MVC?

public IActionResult LoginSubmit(Employee obj)
{
    var abc = _db.Employees.Where(x => x.EmailId == obj.EmailId).FirstOrDefault();
    var passAuth = _db.Employees.Where(x => x.Password == obj.Password).FirstOrDefault();

    if (abc != null && passAuth != null)
    {
        return RedirectToAction("Index", "EmployeeLeaves");
    }
    else
    {
        return RedirectToAction("Login","Employee");
    }
}

上面的代码是我的员工控制器,我想将 id 传递给 Employeeleaves 控制器(如下所示),以便我可以使用它并从两个表中获取数据。

另外登录认证条件也很差。也请提出逻辑。有什么方法可以使用 LinqJoin

EmployeeLeavesController 中的两个表中获取数据
private ApplicationDbContext _db;

public EmployeeLeavesController(ApplicationDbContext db)
{
    _db = db;
}

public ViewResult Index(int EmployeeId)
{
    //var employeeLeaveEMp = _db.EmployeeLeaves.Include(c => c.Employee).ToList();
    //List<Employee> employeeList = _db.Employees.ToList();
    //List<EmployeeLeaves> employeeLeaves = _db.EmployeeLeaves.Where(emp => emp.EmployeeId == EmployeeId).ToList();

    return View();
}

就将值从控制器传递到另一个而言。您可以使用会话变量来存储值,然后在另一个控制器中使用它。 是的,您可以使用 join 从两个表中获取记录,只需尝试在 LINQ

中查找和 JOIN 查询

https://www.tutorialsteacher.com/linq/linq-joining-operator-join

如果你只想在用户logged-in之后传递EmployeeId,你可以像下面这样传递:

return RedirectToAction("Index", "EmployeeLeaves",new {EmployeeId=abc.Id});