1

我有两种类型的控制器,

  • 作业控制器
  • 雇主控制器

这两个控制器,详细信息如下,

  • 联系人
  • 联系电话
  • 手机号码
  • 电子邮件地址

这些细节在两个控制器中是相同的。我将所有值分开。现在我想将详细信息从 Employercontroller 填充到 Jobcontroller。

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

4

3 回答 3

0

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

http://www.squaredroot.com/2007/12/20/mvc-viewdata-vs-tempdata/

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

Ben Scheirmanhttp : //flux88.com/2008/01/testing-tempdata-in-asp-net-mvc/,“TempData 是一个会话支持的临时存储字典,可用于单个请求。很高兴通过控制器之间的消息。”

于 2013-05-17T07:08:04.787 回答
0

根据您提供的详细信息,可能有多种情况可供查看。

如果您有两个控制器,那么应​​该有单独的存储库调用来访问这些控制器中的数据。但似乎您需要保留数据以防重定向到另一个操作。如果是这种情况...那么您可以使用 Temp 数据来存储值并在另一个控制器操作中访问这些值,如下所示..

在 Employee 控制器中的 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;

请记住:如果您要为一个操作分配详细信息并仅重定向到另一个操作,则上面的代码很有用。阅读 google 上的 Tempdata。

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

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

干杯

于 2013-05-17T06:57:13.867 回答
0

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

于 2020-01-04T07:31:53.720 回答