我有两个不同的对象:契约(Contract)和任务订单。我的要求指定为了查看任一对象的详细信息,Url 应为“http://.../Contract/Details”或“http://.../TaskOrder/Details”,具体取决于哪种类型。它们非常相似,详细信息页面几乎相同,所以我制作了一个可以是契约(Contract)或任务订单的类,并且有一个变量“objectTypeID”,说明它是哪种类型。我在任务订单 Controller 中编写了操作“详细信息”,但现在我想从契约(Contract) Controller 中调用它,而不是重新复制代码。
那么有没有办法让 url 仍然显示“.../Contract/Details”,而是调用 TaskOrder Controller 中的操作?我尝试使用
TaskOrderController TOController = new TaskOrderController();
TOController.Details(id);
除了我不能再使用 HttpContext.Session 之外,这本来可以工作,我在操作中多次使用它。
最佳答案
为什么要从 Controller 调用 Controller ?应通过路由调用 Controller 操作并返回 View 。
如果您有两个独立 Controller 使用的公共(public)代码,那么您应该考虑将此代码抽象到另一个类。
关于c# - 从另一个 Controller 调用一个 Action ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2899997/