当我在服务器中调用重定向到操作时出错
本文关键字:操作 出错 重定向 调用 服务器 | 更新日期: 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, Func1 continuation) +613
1 个过滤器, ActionResult actionResult) +263
System.Web.Mvc.ControllerActionInvoker.InvokeActionResultWithFilters(ControllerContext controllerContext, IList
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:出现空动作链接
谢谢!