我想从一个控制器中的操作重定向到第二个控制器中的操作.通常我会使用RedirectToAction("actionName","controllerName",对象); 我想重定向到的方法有两个重载:
一个用于HttpVerbs.Get,用于直接链接
一个用于HttpVerbs.Post接受通过模型绑定填充的引用类型
当我使用RedirectToAction方法进行重定向时,默认情况下会重定向到GET方法,当然这与我的参数不匹配.
如何确保重定向到正确的操作过载?
--EDIT--
根据要求提供一些更具体的细节:
我想重定向的动作根据参数填充viewData,然后调用正确的视图.
public ActionResult OverView(SearchBag searchBag, IngredientBag ingredientBag) {
它有第二个版本的Get,所以它也可以通过GET工作:
[AcceptVerbs(HttpVerbs.Get)] public ActionResult OverView(int colorId, string paintCode, string name, int formulaId) { return OverView(new SearchBag() { ColorId = colorId, PaintCode = paintCode, ColorName = name, FormulaId = formulaId } , formulaViewData.IngredientBag); }
我现在打电话的是一个不同的控制器.它进行一些预先计算,获取所需的信息,然后执行与先前操作完全相同的操作.我可以从第一个动作复制代码,但我宁愿只是调用该动作.
[AcceptVerbs(HttpVerbs.Post)] public RedirectToRouteResult ReCalculate(SearchBag searchBag, IngredientBag ingredientBag) {
我可以创建下一个控制器的临时本地实例,但我注意到它没有正确的HTTPContext并且没有点击初始化方法.