我对这段代码片段感到有些困惑。我在httpPost动作中有以下内容
if(returnUrl.StartsWith("/AssetResearch/InvestorApproval"))
{
return RedirectToAction("InvestorApproval", "AssetResearch");
}
但我的代码每次都转到我的index()动作。这可能发生的原因是什么? RedirectToAction不应该触发我的行动吗?
编辑:是的,它出现在if语句中。
答案 0 :(得分:1)
代码
return RedirectToAction("InvestorApproval", "AssetResearch");
将重定向到Controller“AssetResearch”操作方法“InvestorApproval”
1)听起来很傻,但请确保您在课程中正确拼写了InvestorApproval的动作方法名称
2)确保如果该操作采用您创建的数据和传递它的routevalue字典,您可以尝试
return RedirectToAction(new RouteValueDictionary( new{ controller = "AssetResearch", action = "InvestorApproval", data="blah" } )
答案 1 :(得分:1)
如果您可以直接访问/AssetResearch/InvestorApproval
,那么
return RedirectToAction("InvestorApproval", "AssetResearch");
会显示InvestorApproval
操作方法,如果没有,我猜您已路由到索引页面,因为您在Application_Start
文件的Global.asax
方法中配置了路由。
答案 2 :(得分:1)
您可以开始使用路由进行调试吗?如下......
您只需要在项目中添加一个Dll即可。您可以查看 here
最后添加以下代码行
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);
}