当我在服务器中调用重定向到操作时出错

本文关键字:操作 出错 重定向 调用 服务器 | 更新日期: 2023-09-27 18:36:04

环境。

开发 : VisualStudio2012 MVC4 .NetFrameWrok4.5
服务器:WindowsServer2008 R2 IIS 7.5

如果我登录失败。我叫-> return RedirectToAction("LoginError", "Search");当我在可视化工作室上调试时,它已成功工作。但是,它是服务器上的返回错误页面。

这是错误消息。

"/"应用程序中的服务器错误 说明:执行当前 Web 请求期间发生未经处理的异常。请查看堆栈跟踪,了解有关错误及其在代码中起源位置的详细信息。 堆栈跟踪:

[无效操作异常:
System.Web.Mvc.RedirectToRouteResult.ExecuteResult(ControllerContext 上下文) +479
System.Web.Mvc.<>c__DisplayClass1a.b__17() +33 System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilter(IResultFilter filter, ResultExecutingContext preContext, Func 1 continuation) +613
System.Web.Mvc.ControllerActionInvoker.InvokeActionResultWithFilters(ControllerContext controllerContext, IList
1 个过滤器, ActionResult actionResult) +263
System.Web.Mvc.Async.<>c__DisplayClass25.b__22(IAsyncResult 异步结果) +230
System.Web.Mvc.<>c__DisplayClass1d.b__18(IAsyncResult 异步结果) +28
System.Web.Mvc.Async.<>c__DisplayClass4.b__3(IAsyncResult ar) +20 System.Web.Mvc.Controller.EndExecuteCore(IAsyncResult 异步结果) +53
System.Web.Mvc.Async.<>c__DisplayClass4.b__3(IAsyncResult AR) +20
System.Web.Mvc.<>c__DisplayClass8.b__3(IAsyncResult 异步结果) +42
System.Web.Mvc.Async.<>c__DisplayClass4.b__3(IAsyncResult AR) +20
System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +453 System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completeSyncally) +371

我找到了这个。重定向到操作导致 MVC 3 中的"路由表中没有路由与提供的值匹配 ASP.NET"

return RedirectToAction("ActionName", "ControllerName", new { area = "AreaName" });

但我无法理解新{ area = "AreaName" }的含义.我不知道这是什么。

如果你知道,请教我这个。谢谢。

当我在服务器中调用重定向到操作时出错

除非你定义了区域,否则你不需要这样做。若要了解哪些区域,请查看此 MSDN 文章。

简而言之,它们就像 MVC 应用程序的一个独立部分。

关于您的错误,我认为使用此重载return RedirectToAction("ActionName", "ControllerName")应该就足够了,但是在没有看到代码的情况下,这只是一个假设。

另请查看重载的完整列表,以重定向到本文中的操作。

我找到了解决方案。问题的原因是路由配置.cs。我只写了这个。

        routes.MapRoute(
            name: "SearchPart_three_para",
            url: "{controller}/{action}/{id}/{requestcode}/{systemid}",
            defaults: new
            {
                controller = "Search",
                action = "SearchPart",
                id = UrlParameter.Optional,
                requestcode = UrlParameter.Optional,
                systemid = UrlParameter.Optional
            }
        );

我像这样编辑。

        routes.MapRoute(
            name: "SearchPart",
            url: "{controller}/{action}",
            defaults: new
            {
                controller = "Search",
                action = "SearchPart"
            }
        );
        routes.MapRoute(
            name: "SearchPart_three_para",
            url: "{controller}/{action}/{id}/{requestcode}/{systemid}",
            defaults: new
            {
                controller = "Search",
                action = "SearchPart",
                id = UrlParameter.Optional,
                requestcode = UrlParameter.Optional,
                systemid = UrlParameter.Optional
            }
        );

参考这里。ASP.NET MVC:出现空动作链接

谢谢!