मुझे यह कहते हुए एक अपवाद मिल रहा है कि asp.net mvc एक्शन विधि नहीं पा सकता है। यहाँ अपवाद है:
नियंत्रक '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.HandleUnognAction (स्ट्रिंग कार्रवाईनाम) में 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 requestCuttext) C: \ dev \ ThirdParty \ MvcDev \ src \ SystemWebMvc पीवीसी। ControllerBase.cs: Line 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);
}
}
धन्यवाद, क्रिस