- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在互联网上到处搜索,并检查了所有以前回答过的具有相同标题的问题,但我无法弄清楚这个问题。
我从身份验证 Controller 中的操作方法返回 RedirectToAction("Index", "Home"),然后收到以下异常:
Server Error in '/' Application.
The controller for path '/Home' was not found or does not implement IController.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
Exception Details: System.Web.HttpException: The controller for path '/Home' was not found or does not implement IController.
Source Error:
An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.
Stack Trace:
[HttpException (0x80004005): The controller for path '/Home' was not found or does not implement IController.]
System.Web.Mvc.DefaultControllerFactory.GetControllerInstance(RequestContext requestContext, Type controllerType) +683921
System.Web.Mvc.DefaultControllerFactory.CreateController(RequestContext requestContext, String controllerName) +89
Castle.Proxies.Invocations.IControllerFactory_CreateController.InvokeMethodOnTarget() +155
Castle.DynamicProxy.AbstractInvocation.Proceed() +116
Glimpse.Core.Extensibility.ExecutionTimer.Time(Action action) +85
Glimpse.Core.Extensibility.AlternateMethod.NewImplementation(IAlternateMethodContext context) +186
Castle.DynamicProxy.AbstractInvocation.Proceed() +604
Castle.Proxies.IControllerFactoryProxy.CreateController(RequestContext requestContext, String controllerName) +193
System.Web.Mvc.MvcHandler.ProcessRequestInit(HttpContextBase httpContext, IController& controller, IControllerFactory& factory) +305
System.Web.Mvc.MvcHandler.BeginProcessRequest(HttpContextBase httpContext, AsyncCallback callback, Object state) +87
System.Web.Mvc.ServerExecuteHttpHandlerWrapper.Wrap(Func`1 func) +41
[HttpException (0x80004005): Execution of the child request failed. Please examine the InnerException for more information.]
System.Web.Mvc.ServerExecuteHttpHandlerWrapper.Wrap(Func`1 func) +785832
System.Web.HttpServerUtility.ExecuteInternal(IHttpHandler handler, TextWriter writer, Boolean preserveForm, Boolean setPreviousPage, VirtualPath path, VirtualPath filePath, String physPath, Exception error, String queryStringOverride) +3977
System.Web.HttpServerUtility.Execute(IHttpHandler handler, TextWriter writer, Boolean preserveForm, Boolean setPreviousPage) +275
System.Web.HttpServerUtilityWrapper.Execute(IHttpHandler handler, TextWriter writer, Boolean preserveForm) +94
System.Web.Mvc.Html.ChildActionExtensions.ActionHelper(HtmlHelper htmlHelper, String actionName, String controllerName, RouteValueDictionary routeValues, TextWriter textWriter) +700
System.Web.Mvc.Html.ChildActionExtensions.Action(HtmlHelper htmlHelper, String actionName, String controllerName, RouteValueDictionary routeValues) +123
Panoptes.Ui.Web.Views.Home.Index.Execute() in c:\Dropbox\Energy Management System\Application\Panoptes\Panoptes.Ui.Web\obj\CodeGen\Views\Home\Index.cshtml:48
System.Web.WebPages.WebPageBase.ExecutePageHierarchy() +280
System.Web.Mvc.WebViewPage.ExecutePageHierarchy() +126
System.Web.WebPages.StartPage.ExecutePageHierarchy() +143
System.Web.WebPages.WebPageBase.ExecutePageHierarchy(WebPageContext pageContext, TextWriter writer, WebPageRenderingBase startPage) +181
RazorGenerator.Mvc.PrecompiledMvcView.Render(ViewContext viewContext, TextWriter writer) +952
System.Web.Mvc.ViewResultBase.ExecuteResult(ControllerContext context) +378
Castle.Proxies.AsyncControllerActionInvokerProxy.InvokeActionResult_callback(ControllerContext controllerContext, ActionResult actionResult) +21
Castle.DynamicProxy.AbstractInvocation.Proceed() +116
Glimpse.Core.Extensibility.ExecutionTimer.Time(Action action) +85
Glimpse.Core.Extensibility.AlternateMethod.NewImplementation(IAlternateMethodContext context) +186
Castle.DynamicProxy.AbstractInvocation.Proceed() +604
System.Web.Mvc.<>c__DisplayClass1a.<InvokeActionResultWithFilters>b__17() +33
System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilter(IResultFilter filter, ResultExecutingContext preContext, Func`1 continuation) +854172
System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilter(IResultFilter filter, ResultExecutingContext preContext, Func`1 continuation) +854172
System.Web.Mvc.ControllerActionInvoker.InvokeActionResultWithFilters(ControllerContext controllerContext, IList`1 filters, ActionResult actionResult) +265
System.Web.Mvc.Async.<>c__DisplayClass25.<BeginInvokeAction>b__22(IAsyncResult asyncResult) +838644
System.Web.Mvc.<>c__DisplayClass1d.<BeginExecuteCore>b__18(IAsyncResult asyncResult) +28
System.Web.Mvc.Async.<>c__DisplayClass4.<MakeVoidDelegate>b__3(IAsyncResult ar) +15
System.Web.Mvc.Controller.EndExecuteCore(IAsyncResult asyncResult) +65
System.Web.Mvc.Async.<>c__DisplayClass4.<MakeVoidDelegate>b__3(IAsyncResult ar) +15
System.Web.Mvc.Controller.EndExecute(IAsyncResult asyncResult) +51
System.Web.Mvc.<>c__DisplayClass8.<BeginProcessRequest>b__3(IAsyncResult asyncResult) +42
System.Web.Mvc.Async.<>c__DisplayClass4.<MakeVoidDelegate>b__3(IAsyncResult ar) +15
System.Web.Mvc.MvcHandler.EndProcessRequest(IAsyncResult asyncResult) +51
System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +606
System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +288
Version Information: Microsoft .NET Framework Version:4.0.30319; ASP.NET Version:4.0.30319.18034
身份验证 Controller 如下所示:
public class AuthenticationController : Controller
{
private ILogService _logService;
private IEmailProvider _emailProvider;
private IMembershipProvider _membershipProvider;
private IAuthenticationProvider _authenicationProvider;
public AuthenticationController(ILogService logService, IEmailProvider emailProvider, IMembershipProvider membershipProvider, IAuthenticationProvider authenicationProvider)
{
_logService = logService;
_emailProvider = emailProvider;
_membershipProvider = membershipProvider;
_authenicationProvider = authenicationProvider;
}
[AllowAnonymous]
[HttpGet]
////[OutputCache(Duration = 3600, VaryByParam = "none")]
public ActionResult Index()
{
return View();
}
[AllowAnonymous]
[HttpPost]
[ValidateHttpAntiForgeryToken]
public ActionResult Login(LoginModel model, string returnUrl)
{
if (Request.IsAuthenticated)
{
return RedirectToAction("Index", "Home");
}
if (ModelState.IsValid)
{
if (_membershipProvider.ValidateUser(model.Username, model.Password))
{
_authenicationProvider.AuthenticateUser(model.Username);
////this.HttpContext.User = new GenericPrincipal(new GenericIdentity(model.Username), null);
if (!string.IsNullOrEmpty(returnUrl))
{
if (Url.IsLocalUrl(returnUrl))
{
return Redirect(returnUrl);
}
else
{
_logService.Log(new SecurityException(string.Format("Open redirect to {0} detected (Username {1})", returnUrl, model.Username)));
return View("Index", model);
}
}
else
{
return RedirectToAction("Index", "Home");
}
}
else
{
ModelState.AddModelError(string.Empty, Resources.Controller.View.Authentication.Index.IncorrectUsernamePassword);
}
}
return View("Index", model);
}
[AllowAnonymous]
[HttpPost]
[ValidateHttpAntiForgeryToken]
public ActionResult ForgotPassword(LoginModel model)
{
if (ModelState.IsValidField("Username"))
{
if (!_membershipProvider.EnablePasswordRetrieval)
{
throw new Exception(Resources.Controller.View.Authentication.Index.PasswordRetreivalNotAllowed);
}
IMembershipUser user = _membershipProvider.FindUsersByName(model.Username).FirstOrDefault();
if (user != null)
{
try
{
_emailProvider.Send(ConfigurationHelper.GetSmtpSettings().Smtp.From, user.EmailAddress, Resources.Global.PasswordRecoveryEmailSubject, user.GeneratePasswordRetreivalEmail());
ModelState.AddModelSuccess(Resources.Controller.View.Authentication.Index.PasswordSentViaEmail);
}
catch (Exception ex)
{
_logService.Log(ex);
ModelState.AddModelError(string.Empty, Resources.Controller.View.Authentication.Index.UnableToRetreivePassword);
}
}
else
{
ModelState.AddModelError(string.Empty, Resources.Controller.View.Authentication.Index.EmailAddressDoesNotExist);
}
}
ViewBag.ShowForgottenPasswordForm = "true";
return View("Index", model);
}
[HttpGet]
public ActionResult Logout()
{
_authenicationProvider.Logout();
ModelState.AddModelInformation(Resources.Controller.View.Authentication.Index.Logout);
return View("Index");
}
}
我的 HomeController 如下所示:
public class HomeController : Controller
{
private IMembershipProvider _membershipProvider;
private IAuthenticationProvider _authenticationProvider;
public HomeController(IMembershipProvider membershipProvider, IAuthenticationProvider authenticationProvider)
{
_membershipProvider = membershipProvider;
_authenticationProvider = authenticationProvider;
}
public ActionResult Index()
{
return View(_membershipProvider.GetCurrentUser());
}
}
请参阅下面我的 RouteConfig:
public class RouteConfig
{
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "Default",
url: "{controller}/{action}",
defaults: new { controller = "Authentication", action = "Index" });
}
}
RouteDebugger 对于路由 {controller}/{action} 和 {*catchall} 返回 TRUE,并确认 AppRelativeCurrentExecutionFilePath 为:~/Home
我已经调试了代码,并且可以成功调试并单步执行 HomeController 构造函数和 Index 操作方法。我还能够进入“~/Views/Home/Index.cshtml”,但是它在代码行抛出异常:
<span class="username">@Model.UserName</span>
有趣的是,在我进入这段代码之前,我可以将“@Model.UserName”添加到我的 watch 列表中,我可以很好地看到该对象及其属性,但由于某种原因,它在进入或超越时会引发异常这行代码。
如果调试器进入 HomeController、Index 操作方法和 Index View ,那么为什么会突然抛出找不到路径“~/Home”的 HomeController 的异常?
捕获的fiddler数据可以在以下链接找到:http://d-h.st/IqV
我已经使用 Razor Generator 来编译我的 View ,并且我还使用 Ninject.Mvc 来解析我的 Controller 。还值得一提的是,我已经清除并重新生成了编译的 View ,并且我的项目不包含任何注册区域。
有什么想法吗?这可能很简单,也可能很明显,但我是 MVC 新手,并且正在阅读/学习。
谢谢
最佳答案
所以人们可以看到这个问题在这里得到了回答,这就是为什么它抛出异常以及我如何修复它:
由于 HomeController Index View 中的以下代码行而引发异常:
<a href="@Html.Action("Log Out","Logout", "Authentication")"><i class="icon-key"></i> Log Out</a>
正如您所看到的,它传递了错误的参数,并且“Log Out”作为操作名称传入,而实际上这应该是“Logout”。我将其更正为以下内容并且有效:
<a href="@Html.Action("Logout", "Authentication")"><i class="icon-key"></i> Log Out</a>
因此,如果您遇到此异常并且像我一样无法理解原因,那么请确保检查 View 中的其余代码以确保其正确。在这种情况下,框架不提供有意义的异常消息和堆栈跟踪。
关于asp.net-mvc - 路径 '/Home' 的 Controller 未找到或未实现 IController,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16444981/
当我使用 Html.ActionLink 时,我发现 @Html.ActionLink("Home", "Index", "home")生成此字符串 Home ,那么为什么地址是\home\index
我有一个现有的 webapi 2 应用程序需要添加基本的前端。现有的 webapi Controller 已在名为 xController yController 的 Controllers 目录根目
我家里有一个应用程序小部件,它会定期更新。如果 HOME 不可见,我想停止更新。我使用一项服务来注册屏幕开/关接收器,以便在屏幕开/关时开始/停止更新应用程序小部件。但我不知道如何检测屏幕是否打开但用
我在使用 create-react-app 时遇到了这个问题,我得到了一个错误: Home does not contain an export named Home. 下面是我如何设置我的 App.
最近我不得不在 .bashrc 中更新我的 JAVA 环境变量 echo $JAVA_HOME # prints out /usr/java/... echo $(JAVA_HOME) # raise
$ cat Makefile all: echo VAR is ${HOME} echo VAR is $${HOME} 给予 $ make echo VAR is /home/abc
我尝试在 google home 模拟器中测试我的项目。直到昨天它还在工作,但今天它显示错误“完成您的请求时出错”网址:“https://console.actions.google.com/proj
我已经实现了具有 OnOff 特性的风扇打开/关闭功能和具有 Fanspeed 特性的风扇模式(“高”、“中”、“低”),现在我想实现百分比 Controller 。例如:将风扇速度设置为 50%。我
我制作了一个小型 Google Home 应用程序,我的服务通过 SimpleMessage + Card 返回响应。 在 console.actions.google.com 模拟器中运行应用程序时
我还在用log4j-1.2.14.jar 在我尝试使用的属性中 log4j.appender.R=org.apache.log4j.DailyRollingFileAppender log4j.app
我正在使用 google smarthome actions for IOT...我更新了我的操作 URL 和帐户链接详细信息。当我尝试在模拟器中启用测试以将我的 TestAPP 部署到云时,它失败并
我在使用 Spring Boot 时遇到了一些问题。 当我使用 @RequestMapping(value = "/home") 时,一切正常。但是当我使用 @RequestMapping(name
起初,文件图标在我的 Ubuntu 20.04 中丢失。后来我运行 sudo root ,但是点击桌面上的图标打开文件还是有些麻烦。现在我运行 sudo nautilus ,我看到 Home 是/ro
我想在 ionic 中制作一个应用程序,所以我通过命令在 ionic 中添加了一些自定义页面: ionic g 页面用户 但是我启动 ionic 服务器它显示错误 Runtime Error Cann
非常感谢您的帮助。 标题说明一切:使用有什么区别: echo `basename $HOME` 和 echo $(basename $HOME) 请注意,我知道 basename 命令的作用,两种语法
在 Rust 中,默认情况下,文件放在 $HOME/.cargo 和 $HOME/.rustup 中。有什么方法可以覆盖这些默认值吗? 我正在尝试调试一个模糊的问题,我想尝试更改文件位置。 最佳答案
我正在尝试以 root 身份备份机器的一些关键文件和目录,包括一些/home 数据,手动挑选一些文件以减小 tarball 大小。大多数情况下一切正常,因为大多数文件无论如何都归 root 所有,但说
如果菜单项是链接,屏幕阅读器应该将其读作“主页、链接、菜单项”还是“主页、菜单项”? 目前,屏幕阅读器将它读作“主页、链接、菜单项”,但我得到的是关于它的混合信息。一些信息说它应该是“主页、链接、菜单
我在一个有多个组织的项目上使用 php codeigniter。每个组织都会有自己的网站,我需要根据组织名称将每个用户重定向到其组织网站。 我得到了部分运行。以本地主机为例: localhost/ap
我正在 Mac OS X 上安装 Ruby on Rails。我遵循的教程说要添加: [[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/script
我是一名优秀的程序员,十分优秀!