我有一种情况,我需要重定向到不同控制器中的ASP.NET MVC动作。我无法使用RedirectToAction,因为我必须发布操作的参数以使其不在URL中。直接从不同的控制器调用ASP.NET控制器动作
我试图实例化和直接调用其他控制器的操作是这样的:
OtherController myOtherController = new OtherController();
myOtherController.ControllerContext = new ControllerContext(this.ControllerContext.RequestContext, myOtherController);
return await myOtherController.Edit(myGuid);
当我这样做,其他控制器的代码执行,但我结束了这个错误:
The model item passed into the dictionary is of type 'System.Data.Entity.DynamicProxies.OtherModel_BBCEF7C9378F4C4F097CC08FA2E508B8BD8D865E33093E31959919087A31348E', but this dictionary requires a model item of type 'ThisModel'.
有谁知道我是否可以使用当前的方法得到这个工作?假设我必须使用HTTP POST操作并且不能在URL中包含参数,是否有其他方法可以实现此结果(组合控制器除外)?
编辑:
请注意,我不认为我可以直接从客户端后,因为我需要窝Html.BeginForm
。
请注意,我不认为我可以直接从客户端发布,因为我需要嵌套Html.BeginForm。 –
因此,RedirectToAction调用中的RouteValues在这里不适用于您? –
如果结果是URL中的参数,下降的任务是不可接受的。 –