我得到一个间歇性的例外,说asp.net mvc找不到动作方法.这是例外:
在控制器'Schoon.Form.Web.Controllers.ChrisController'上找不到公共操作方法'Fill'.
我认为我已正确设置路由,因为此应用程序大部分时间都可以正常工作.这是控制器的动作方法.
[ActionName("Fill")]
[AcceptVerbs(HttpVerbs.Get | HttpVerbs.Post), UserIdFilter, DTOFilter]
public ActionResult Fill(int userId, int subscriberId, DisplayMode? mode)
{
//…
}
Run Code Online (Sandbox Code Playgroud)
路线:
routes.MapRoute(
"SchoonForm",
"Form/Fill/{subscriberId}",
new { controller = "ChrisController", action = "Fill" },
new { subscriberId = @"\d+" }
);
Run Code Online (Sandbox Code Playgroud)
这是堆栈:
System.Web.HttpException:在控制器'Schoon.Form.Web.Controllers.ChrisController'上找不到公共操作方法'Fill'.在C:\ dev\ThirdParty\MvcDev\src\SystemWebMvc\Mvc\Controller.cs中的System.Web.Mvc.Controller.HandleUnknownAction(String actionName):C中的System.Web.Mvc.Controller.ExecuteCore()中的第197行:\ dev\ThirdParty\MvcDev\src\SystemWebMvc\Mvc\Controller.cs:C:\ dev\ThirdParty\MvcDev\src\SystemWebMvc\Mvc \中System.Web.Mvc.ControllerBase.Execute(RequestContext requestContext)的第164行ControllerBase.cs:C:\ dev\ThirdParty\MvcDev\src\SystemWebMvc\Mvc\ControllerBase.cs:第87行中System.Web.Mvc.ControllerBase.System.Web.Mvc.IController.Execute(RequestContext requestContext)的第76行在C:\ dev\ThirdParty\MvcDev\src\SystemWebMvc\Mvc\MvcHandler.cs中的System.Web.Mvc.MvcHandler.ProcessRequest(HttpContextBase httpContext):System.Web.Mvc.MvcHandler.ProcessRequest(HttpContext httpContext)中的第80行在C:\ dev\ThirdParty\MvcDev\src\SystemWebMvc\Mvc\MvcHandler.cs:第68行,位于C:\ dev\ThirdParty \中的System.Web.Mvc.MvcHandler.System.Web.IHttpHandler.ProcessRequest(HttpContext httpContext) MvcDev的\ src\SystemWebMvc \了Mv c\MvcHandler.cs:System.Web.HttpApplication.ExecuteStep(IExecutionStep step,Boolean&completedSynchronously)上的System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()中的第104行
以下是我的过滤器示例,它们的工作方式相同:
public class UserIdFilter : ActionFilterAttribute
{
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
const string Key = …Run Code Online (Sandbox Code Playgroud)