c# - 从另一个 Controller 调用一个 Action

标签 c# .net asp.net-mvc

我有两个不同的对象:契约(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/

相关文章:

c# - 为什么我的 RichTextBox 没有更改前景色数据绑定(bind)

c# - C#中各种try-catch有什么区别?

c# - 使用 log4view 难以查看/接收 nlog 网络消息

.net - 是否有 Groovy 和 Grails 或 Ruby on Rails 的 .NET 等价物?

javascript - Angular JS : Promise returns resource

c# - 获取容器中 Azure blob 文件的名称列表?

c# - 使用 await-async 的最佳实践,从哪里开始任务?

c# - 为什么 WPF Presentation 库在 StringBuilder.ToString() 中包装字符串?

asp.net - 学习什么-Ruby on Rails或ASP .NET MVC…鉴于熟悉ASP .NET

asp.net-mvc - ASP.NET MVC 中的动态(运行时生成)表单