我从 HomeController 调用 KitchenController ,如何在 HomeController 中获取 KitchenController的模型。
public void KichenDetails(string KichenId)
{
if (string.IsNullOrEmpty(KichenId))
KichenId = "";
var result = new KitchenController().Index(KichenId);
result.Model.;// result contains model and other details as well
}
答案 0 :(得分:2)
这是系统设计不良的标志,您不应该自己创建控制器。控制器应该由控制器工厂创建,作为请求处理流程的一部分。除了大多数应用程序控制器之外,还要与一些服务/外部依赖项进行交互,这些依赖项应该通过依赖注入来解决。
控制器操作主要返回ActionResult(或从中派生的某些类 - ViewResult,JsonResult ...)或直接将数据刷新到响应中。所以即使可以打电话
var result = new KitchenController().Index(KichenId);
您将无法获得预期的结果。 Model,是控制器操作中的私有变量,用于呈现视图或将其序列化为JSON。
如果您有一个用于为Index
创建模型的共享逻辑
动作和KichenDetails
方法您应该将此逻辑提取到单独的服务/提供者/工厂类中,这将在两种方法中使用。这个班可以