【问题标题】:RedirctToAction takes me to base controller of the present controller instead of directed controllerRedirectToAction 将我带到当前控制器的基本控制器而不是定向控制器
【发布时间】:2012-12-01 01:06:20
【问题描述】:

我有两个控制器,分别命名为 forms 和 mobile,在 forms 控制器中,我有一个 return 语句调用 mobile 控制器中的操作,如下所示:

public class formscontroller: customcontroller
{ 
public ActionResult submit(int? id = null, string jsString = null)
        {   code code    
if (CSConfigurationMgr.IsMobileUrl(Request.UrlReferrer.AbsoluteUri.PathFromURL()))
                    return RedirectToAction("home", "mobile", new { success = true });
  return code
}
}

家是一个动作

    public ActionResult home(string res)
            {
code code
}

但我无法使用该功能,它直接将我带到表单的基本控制器,称为自定义。

有解决办法吗?

【问题讨论】:

  • 与 Fiddler 核实您是否获得了正确的 302 响应,而不是查看您是否为该重定向位置设置了正确的路由。

标签: c# asp.net-mvc


【解决方案1】:

“条件”可能永远不会计算为真。

请检查并确保代码执行到该点。

如果您在此处发布两个控制器(如果它们不是太大的话)可能会更有帮助。

【讨论】:

  • 我已经检查了它进入 if 块的断点,然后按照我在问题中提到的那样做......
  • if 块评估为真吗?代码是否到达 return 语句?发布更多代码可能更有帮助。
  • 是的,是的,要从那里返回语句以执行闭括号,然后必须转到移动/家庭,但要转到基本控制器。我的是大代码 sn-p ,我希望更新的问题可能有助于理解.....
【解决方案2】:

对我来说这似乎是一个路由问题。

也许您还没有定义到您的 mobile/home/res 控制器的路由,然后路由引擎将您重定向到您的默认参数路由?

【讨论】:

  • 我不认为这将是一个路由问题,因为我使用相同的控制器操作来构建主页,它工作正常,所以它应该适用于这种情况,否则即使有可能出现这个问题请详细说明......
  • routeConfig.MapRoute("MobileForm", "{controller}/{action}/{*resxSetName}", new { controller = "mobile", action = "home" } );如果我什至尝试添加一条路线,即使它不起作用.....请看看上面的路线.....
  • 将您的整个 RegisterRoutes 方法添加到问题中,以便我们能够检查它。
【解决方案3】:

假设 home 是移动控制器上的操作,那么您在 home 操作上的签名可能不正确,因为它声明了一个 string 参数并且您正在发送一个 boolean

【讨论】:

  • string 是设置了默认值的默认参数......成功是枚举......我的问题真的很奇怪所以请看看下面的链接......扩展这个问题......如果你能帮助我stackoverflow.com/questions/13946370/…
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-08-25
  • 2017-11-01
相关资源
最近更新 更多