Asp.net mvc 2 将值从一个控制器填充到另一个控制器

Asp.net mvc 2 将值从一个控制器填充到另一个控制器,asp.net-mvc-2,controller,populate,Asp.net Mvc 2,Controller,Populate,我有两种控制器 工作控制器 雇员控制员 这两个控制器的详细信息如下: 联系人 联系电话 移动电话 电子邮件地址 这两个控制器中的详细信息相同。我把所有的价值观分开。现在,我想填充从EmployeerController到Jobcontroller的详细信息 以下是我如何从组织到工作填充所有这些详细信息。有什么想法吗?我已经在谷歌上搜索了这么多参考资料。根据您提供的详细信息,可能有多个场景需要查看 如果您有两个控制器,那么应该有单独的存储库调用来访问这些控制器中的数据。但是,您似乎需要保留

我有两种控制器

  • 工作控制器
  • 雇员控制员
这两个控制器的详细信息如下:

  • 联系人
  • 联系电话
  • 移动电话
  • 电子邮件地址
这两个控制器中的详细信息相同。我把所有的价值观分开。现在,我想填充从EmployeerController到Jobcontroller的详细信息


以下是我如何从组织到工作填充所有这些详细信息。有什么想法吗?我已经在谷歌上搜索了这么多参考资料。

根据您提供的详细信息,可能有多个场景需要查看

如果您有两个控制器,那么应该有单独的存储库调用来访问这些控制器中的数据。但是,您似乎需要保留数据,以防重新引用到另一个操作。如果是这样的话。。。然后,您可以使用临时数据存储这些值,并在另一个控制器操作中访问这些值,如下所示

将TempData中的值存储在员工控制器中

Organization organization = _userRepository.GetOrganizationById(LoggedInOrganization.Id);
            organization.ContactPerson = collection["ContactPerson"];
            organization.Email = collection["Email"];
            organization.Website = collection["Website"];
            organization.ContactNumber = collection["ContactNumber"];
            organization.MobileNumber = collection["MobileNumber"];
            TempData["Details"] = organization;
然后,您可以在重定向后的另一个控制器操作中访问它

var organisation = (Organisation) TempData["Details"];
job.ContactPerson = organisation.ConcactPerson;
                job.ContactNumber = organisation..ContactNumer;
                job.MobileNumber = organisation..MobileNumber;
                job.EmailAddress = organisation.Email;
请记住:如果您正在分配一个操作的详细信息并仅重定向到另一个操作,则上述代码将非常有用。。在谷歌上阅读Tempdata

如果这两个控制器在任何上下文中都没有关系,那么最好从存储库中访问数据并使用它

如果您仍有疑问或对答案不满意,请详细说明您的问题


干杯

我建议您使用
ViewData
TempData
在两个控制器操作之间进行通信。本文指出了两者之间的区别

主要区别在于
TempData
实际上是用于两个控制器之间的通信

本·谢尔曼: ,“临时数据 是一个支持会话的临时存储字典,可用于 一个请求。在控制器之间传递消息非常好。”


只要在控制器“a”中创建一个方法DATA(),在控制器“B”中创建控制器“a”的对象,并在需要获取特定变量的数据时调用方法DATA()。

我找不到解决方案。我只使用相同的存储库。在jobcontroller中,我调用organizationid。一个organizationId可以有多个作业。。。