我有两种类型的控制器,
- 作业控制器
- 雇主控制器
这两个控制器,详细信息如下,
- 联系人
- 联系电话
- 手机号码
- 电子邮件地址
这些细节在两个控制器中是相同的。我将所有值分开。现在我想将详细信息从 Employercontroller 填充到 Jobcontroller。
以下是我如何填充从组织到工作的所有这些详细信息。任何想法?我已经在谷歌上搜索了很多参考资料。
我有两种类型的控制器,
这两个控制器,详细信息如下,
这些细节在两个控制器中是相同的。我将所有值分开。现在我想将详细信息从 Employercontroller 填充到 Jobcontroller。
以下是我如何填充从组织到工作的所有这些详细信息。任何想法?我已经在谷歌上搜索了很多参考资料。
我建议您使用ViewData
或TempData
在两个控制器操作之间进行通信。这篇文章指出了两者之间的区别。
http://www.squaredroot.com/2007/12/20/mvc-viewdata-vs-tempdata/
主要区别在于这TempData
实际上是用于 2 个控制器之间的通信。
Ben Scheirman: http : //flux88.com/2008/01/testing-tempdata-in-asp-net-mvc/,“TempData 是一个会话支持的临时存储字典,可用于单个请求。很高兴通过控制器之间的消息。”
根据您提供的详细信息,可能有多种情况可供查看。
如果您有两个控制器,那么应该有单独的存储库调用来访问这些控制器中的数据。但似乎您需要保留数据以防重定向到另一个操作。如果是这种情况...那么您可以使用 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。
如果这两个控制器在任何上下文中都没有关系,那么从存储库访问数据并使用它是一个好习惯。
如果您仍有疑问或对答案不满意,请详细说明您的问题。
干杯
只需在控制器“A”中创建一个方法 DATA() 并在控制器“B”中创建控制器“A”的对象,并在您想要获取特定变量的数据时调用方法 DATA()。