Ich erhalte eine zeitweise Ausnahme, die besagt, dass asp.net mvc die Aktionsmethode nicht finden kann. Hier ist die Ausnahme:
Eine öffentliche Aktionsmethode 'Fill' konnte auf dem Controller 'Schoon.Form.Web.Controllers.ChrisController' nicht gefunden werden.
Ich glaube, ich habe das Routing richtig eingerichtet, da diese Anwendung die meiste Zeit funktioniert. Hier ist die Aktionsmethode des Controllers.
[ActionName("Fill")]
[AcceptVerbs(HttpVerbs.Get | HttpVerbs.Post), UserIdFilter, DTOFilter]
public ActionResult Fill(int userId, int subscriberId, DisplayMode? mode)
{
//…
}
Die Route:
routes.MapRoute(
"SchoonForm",
"Form/Fill/{subscriberId}",
new { controller = "ChrisController", action = "Fill" },
new { subscriberId = @"\d+" }
);
Und hier ist der Stapel:
System.Web.HttpException: Eine öffentliche Aktionsmethode 'Fill' wurde auf dem Controller 'Schoon.Form.Web.Controllers.ChrisController' nicht gefunden. bei System.Web.Mvc.Controller.HandleUnknownAction (String actionName) in C: \ dev \ ThirdParty \ MvcDev \ src \ SystemWebMvc \ Mvc \ Controller.cs: Zeile 197 bei System.Web.Mvc.Controller.ExecuteCore () in C. : \ dev \ ThirdParty \ MvcDev \ src \ SystemWebMvc \ Mvc \ Controller.cs: Zeile 164 in System.Web.Mvc.ControllerBase.Execute (RequestContext requestContext) in C: \ dev \ ThirdParty \ MvcDev \ src \ SystemWebMvc \ Mvc \ ControllerBase.cs: Zeile 76 in System.Web.Mvc.ControllerBase.System.Web.Mvc.IController.Execute (RequestContext requestContext) in C: \ dev \ ThirdParty \ MvcDev \ src \ SystemWebMvc \ Mvc \ ControllerBase.cs: Zeile 87 bei System.Web.Mvc.MvcHandler.ProcessRequest (HttpContextBase httpContext) in C:
Hier ist ein Beispiel für meine Filter, die alle auf die gleiche Weise funktionieren:
public class UserIdFilter : ActionFilterAttribute
{
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
const string Key = "userId";
if (filterContext.ActionParameters.ContainsKey(Key))
{
filterContext.ActionParameters[Key] = // get the user id from session or cookie
}
base.OnActionExecuting(filterContext);
}
}
Danke, Chris
PostSomething { return HomePageActionMethod() }
schlägt fehl, wo PostSomething { return RedirectToAction(nameof(HomePageActionMethod)); }
funktioniert. (In unserem Fall befindet sich die fehlerhafte Aktion in der Ansicht in einem anderen Controller, und vermutlich wird dieser Controller mit der ersten