Asp.net mvc 公共行动方法';索引​';在mvc中的控制器上找不到

Asp.net mvc 公共行动方法';索引​';在mvc中的控制器上找不到,asp.net-mvc,action,public,Asp.net Mvc,Action,Public,我有如下的操作方法,没有任何关于操作的HTTPGET和POST public ActionResult Index(bool isTemplate = false) { ViewBag.isTemplate = isTemplate; return this.View("Index"); } 出于某种奇怪的原因,我变得异常了 System.Web.HttpException (0x80004005): A public action me

我有如下的操作方法,没有任何关于操作的HTTPGET和POST

    public ActionResult Index(bool isTemplate = false)
    {
        ViewBag.isTemplate = isTemplate;
        return this.View("Index");
    }
出于某种奇怪的原因,我变得异常了

System.Web.HttpException (0x80004005): A public action method 'index​' was not found on controller 'Nalco.enVision.Web.Areas.Reporting.Controllers.ReportController'.
   at System.Web.Mvc.Controller.HandleUnknownAction(String actionName)
   at System.Web.Mvc.Controller.<BeginExecuteCore>b__1d(IAsyncResult asyncResult, ExecuteCoreState innerState)
   at System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncVoid`1.CallEndDelegate(IAsyncResult asyncResult)
   at System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncResultBase`1.End()
   at System.Web.Mvc.Controller.EndExecuteCore(IAsyncResult asyncResult)
   at System.Web.Mvc.Controller.<BeginExecute>b__15(IAsyncResult asyncResult, Controller controller)
   at System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncVoid`1.CallEndDelegate(IAsyncResult asyncResult)
   at System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncResultBase`1.End()
   at System.Web.Mvc.Controller.EndExecute(IAsyncResult asyncResult)
   at System.Web.Mvc.Controller.System.Web.Mvc.Async.IAsyncController.EndExecute(IAsyncResult asyncResult)
   at System.Web.Mvc.MvcHandler.<BeginProcessRequest>b__5(IAsyncResult asyncResult, ProcessRequestState innerState)
   at System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncVoid`1.CallEndDelegate(IAsyncResult asyncResult)
   at System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncResultBase`1.End()
   at System.Web.Mvc.MvcHandler.EndProcessRequest(IAsyncResult asyncResult)
   at System.Web.Mvc.MvcHandler.System.Web.IHttpAsyncHandler.EndProcessRequest(IAsyncResult result)
   at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
   at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)
System.Web.HttpException(0x80004005):公共操作方法“索引”​' 在控制器“Nalco.enVision.Web.Areas.Reporting.controller.ReportController”上找不到。
位于System.Web.Mvc.Controller.HandleUnknownAction(字符串actionName)
在System.Web.Mvc.Controller.b_u1d(IAsyncResult asyncResult,ExecuteCoregreat innerState)
位于System.Web.Mvc.Async.AsyncResultRapper.WrappedAsyncVoid`1.CallEndDelegate(IAsyncResult asyncResult)
位于System.Web.Mvc.Async.AsyncResultRapper.WrappedAsyncResultBase`1.End()
位于System.Web.Mvc.Controller.EndExecuteCore(IAsyncResult asyncResult)
在System.Web.Mvc.Controller.b_uu15上(IAsyncResult asyncResult,Controller)
位于System.Web.Mvc.Async.AsyncResultRapper.WrappedAsyncVoid`1.CallEndDelegate(IAsyncResult asyncResult)
位于System.Web.Mvc.Async.AsyncResultRapper.WrappedAsyncResultBase`1.End()
在System.Web.Mvc.Controller.EndExecute(IAsyncResult asyncResult)上
位于System.Web.Mvc.Controller.System.Web.Mvc.Async.IAsyncController.EndExecute(IAsyncResult asyncResult)
位于System.Web.Mvc.MvcHandler.b_uu5(IAsyncResult asyncResult,ProcessRequestState innerState)
位于System.Web.Mvc.Async.AsyncResultRapper.WrappedAsyncVoid`1.CallEndDelegate(IAsyncResult asyncResult)
位于System.Web.Mvc.Async.AsyncResultRapper.WrappedAsyncResultBase`1.End()
位于System.Web.Mvc.MvcHandler.EndProcessRequest(IAsyncResult asyncResult)
在System.Web.Mvc.MvcHandler.System.Web.IHTTPassynchandler.EndProcessRequest中(IAsyncResult结果)
在System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()中
在System.Web.HttpApplication.ExecuteStep(IExecutionStep步骤,布尔值&同步完成)
为什么我会间歇性地出现此错误?

请尝试以下操作:

public ActionResult Index(bool isTemplate = false)    {
        ViewBag.isTemplate = isTemplate;
        return View();
    }
试试这个:

public ActionResult Index(bool isTemplate = false)    {
        ViewBag.isTemplate = isTemplate;
        return View();
    }

假设
ActionResult
方法在
ReportController
中,将return语句更改为:

return View();

假设
ActionResult
方法在
ReportController
中,将return语句更改为:

return View();

我不确定您是如何调用此操作的,但我在视图未发回自身时遇到了此问题

换句话说,在您的示例中,有一个名为ReportController的控制器和一个名为Index.cshtml的视图。如果存在不同的视图,请说different.cshtml,该视图的表单旨在发布到Report/Index.cshtml,如下所示:

@Html.BeginForm("Index", "ReportController", FormMethod.Post)
然后尝试发回不同的操作,然后重定向到ReportController内的操作索引。 上面的代码将变成:

@Html.BeginForm()

查看这是否使您通过了“在控制器Y上找不到公共操作方法X”

我不确定您如何调用此操作,但当视图未发回自身时,我遇到了此问题

换句话说,在您的示例中,有一个名为ReportController的控制器和一个名为Index.cshtml的视图。如果存在不同的视图,请说different.cshtml,该视图的表单旨在发布到Report/Index.cshtml,如下所示:

@Html.BeginForm("Index", "ReportController", FormMethod.Post)
然后尝试发回不同的操作,然后重定向到ReportController内的操作索引。 上面的代码将变成:

@Html.BeginForm()

查看这是否使您通过了“在控制器Y上找不到公共操作方法X”

我也遇到了相同的错误,因为我调用的页面/操作方法需要身份验证,所以我只是在方法上方添加了属性

[AllowAnonymous]
Public ActionResult Index()
{
    return View();
}

我也得到了同样的错误,因为我调用的pages/Action方法需要身份验证,所以我只是在方法上方添加了属性

[AllowAnonymous]
Public ActionResult Index()
{
    return View();
}

你怎么称呼这种行为?控制器类有哪些属性?我认为你的返回线上有太多的属性。尝试缩短它以返回视图();您是否使用以下url调用它:
/reporting/report
?如何调用此操作?控制器类有哪些属性?我认为你的返回线上有太多的属性。尝试缩短它以返回视图();您是否使用以下url调用它:
/reporting/report