Asp.net mvc 公共行动方法';索引';在mvc中的控制器上找不到
我有如下的操作方法,没有任何关于操作的HTTPGET和POSTAsp.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
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
?