ฉันได้รับข้อยกเว้นไม่ต่อเนื่องโดยแจ้งว่า asp.net mvc ไม่พบวิธีการดำเนินการ นี่คือข้อยกเว้น:
ไม่พบวิธีการดำเนินการสาธารณะ 'Fill' ในตัวควบคุม 'Schoon.Form.Web.Controllers.ChrisController'
ฉันคิดว่าฉันตั้งค่าการกำหนดเส้นทางอย่างถูกต้องเนื่องจากแอปพลิเคชันนี้ใช้งานได้เกือบตลอดเวลา นี่คือวิธีการดำเนินการของคอนโทรลเลอร์
[ActionName("Fill")]
[AcceptVerbs(HttpVerbs.Get | HttpVerbs.Post), UserIdFilter, DTOFilter]
public ActionResult Fill(int userId, int subscriberId, DisplayMode? mode)
{
//…
}
เส้นทาง:
routes.MapRoute(
"SchoonForm",
"Form/Fill/{subscriberId}",
new { controller = "ChrisController", action = "Fill" },
new { subscriberId = @"\d+" }
);
และนี่คือสแต็ก:
System.Web.HttpException: ไม่พบวิธีการดำเนินการสาธารณะ 'Fill' บนตัวควบคุม 'Schoon.Form.Web.Controllers.ChrisController' ที่ System.Web.Mvc.Controller.HandleUnknownAction (String actionName) ใน C: \ dev \ ThirdParty \ MvcDev \ src \ SystemWebMvc \ Mvc \ Controller.cs: บรรทัดที่ 197 ที่ System.Web.Mvc.Controller.ExecuteCore () ใน C : \ dev \ ThirdParty \ MvcDev \ src \ SystemWebMvc \ Mvc \ Controller.cs: บรรทัดที่ 164 ที่ System.Web.Mvc.ControllerBase.Execute (RequestContext requestContext) ใน C: \ dev \ ThirdParty \ MvcDev \ src \ SystemWebMvc \ Mvc \ ControllerBase.cs: บรรทัดที่ 76 ที่ System.Web.Mvc.ControllerBase.System.Web.Mvc.IController.Execute (RequestContext requestContext) ใน C: \ dev \ ThirdParty \ MvcDev \ src \ SystemWebMvc \ Mvc \ ControllerBase.cs: บรรทัด 87 ที่ System.Web.Mvc.MvcHandler.ProcessRequest (HttpContextBase httpContext) ใน C:
นี่คือตัวอย่างตัวกรองของฉันซึ่งทั้งหมดทำงานในลักษณะเดียวกัน:
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);
}
}
ขอบคุณคริส