1

我对这个代码片段有点困惑。我在 httpPost 操作中有以下内容

if(returnUrl.StartsWith("/AssetResearch/InvestorApproval"))
{
    return RedirectToAction("InvestorApproval", "AssetResearch");
}

但我的代码每次都进入我的 index() 操作。为什么会发生这种情况?RedirectToAction 不应该触发我注意到的动作吗?

编辑:是的,它在 if 语句中。

4

3 回答 3

1

如果可以直接访问/AssetResearch/InvestorApproval,那么

return RedirectToAction("InvestorApproval", "AssetResearch");

将向您显示InvestorApproval操作方法,如果没有,我猜您已路由到索引页面,因为您在文件中的Application_Start方法中配置了路由。Global.asax

于 2012-10-10T16:54:30.733 回答
1

您可以开始使用 Routing 进行调试吗?像下面...

在此处输入图像描述

您只需要一个 Dll 即可添加到您的项目中。你可以在这里查看

最后添加以下代码行

public static void RegisterRoutes(RouteCollection routes)
{
    routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

    routes.MapRoute(
        "Default", // Route name
        "{controller}/{action}/{id}", // URL with parameters
        new { controller = "Home", action = "Index", 
                     id = UrlParameter.Optional } // Parameter defaults
    );
    RouteDebug.RouteDebugger.RewriteRoutesForTesting(routes);
}
于 2012-10-10T16:59:35.143 回答
1

编码

return RedirectToAction("InvestorApproval", "AssetResearch");

将重定向到控制器“AssetResearch”操作方法“InvestorApproval”

1) 听起来很傻,但请确保您在类中正确拼写了 InvestorApproval 以用于操作方法名称

2)确保如果该操作采用您创建的数据和传递它的路由值字典,您可以尝试

  return RedirectToAction(new RouteValueDictionary( new{ controller = "AssetResearch", action = "InvestorApproval", data="blah" } )
于 2012-10-10T14:42:31.650 回答