2013-05-26 55 views
3
using Michell.ClaimsAuditAdmin.Models; 
using Mitchell.ClaimsAuditAdmin.Repositories; 
using Mitchell.ClaimsAuditAdmin.Web.Models; 
using System.Web.Mvc; 

namespace Mitchell.ClaimsAuditAdmin.Web.Controllers 
{ 
    public class ClaimAuditAdminController : Controller 
    { 
     private readonly IClaimsAuditAdminRepository claimAuditAdminRepository; 


     public ClaimAuditAdminController(IClaimsAuditAdminRepository claimAuditAdminRepository) 
     { 
      this.claimAuditAdminRepository = claimAuditAdminRepository; 
     } 

     public ActionResult Index() 
     { 
      return View("SearchResultTest"); 
     } 

     public ActionResult TestView() 
     { 
      return View("TestView"); 
     } 


     public ViewResult DisplayClaimAuditView() 
     { 
      return View("_ClaimAuditAdminView"); 
     } 

     public ActionResult SearchResultTest() 
     { 
      return View(); 
     } 

     public ActionResult ClaimAuditReviewFilter() 
     { 
      //ClaimAuditModel objClaimAudit = new ClaimAuditModel(); 
      //objClaimAudit.ClaimAudit_ID = 1; 
      //objClaimAudit.ClaimAudit_Name = "Claim1"; 
      //objClaimAudit.FromDate = DateTime.Now.AddYears(-1); 
      //objClaimAudit.FromDate = DateTime.Now; 
      return PartialView("_ClaimAuditAdminView"); 
     } 



    } 
} 

我知道这个问题已经被问了很多次,但阅读这些SO类似的问题后,我不能够追踪我的error.I已经把调试器在我的控制器构造函数(ClaimAuditAdminController)但调试器不会去那里。 我Route.Config在mvc4此对象定义无参数的构造函数

public class RouteConfig 
    { 
     public static void RegisterRoutes(RouteCollection routes) 
     { 
      routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); 

      routes.MapRoute(
       name: "Default", 
       url: "{controller}/{action}/{id}", 
       defaults: new { controller = "ClaimAuditAdmin", action = "DisplayClaimAuditView", id = UrlParameter.Optional } 
      ); 
     } 

和我的错误的屏幕截图是

Exception Details: System.MissingMethodException: No parameterless constructor defined for this object.

Source Error:

An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.

Stack Trace:

[MissingMethodException: No parameterless constructor defined for this object.] System.RuntimeTypeHandle.CreateInstance(RuntimeType type, Boolean publicOnly, Boolean noCheck, Boolean& canBeCached, RuntimeMethodHandleInternal& ctor, Boolean& bNeedSecurityCheck) +0
System.RuntimeType.CreateInstanceSlow(Boolean publicOnly, Boolean skipCheckThis, Boolean fillCache, StackCrawlMark& stackMark) +113
System.RuntimeType.CreateInstanceDefaultCtor(Boolean publicOnly, Boolean skipCheckThis, Boolean fillCache, StackCrawlMark& stackMark) +232 System.Activator.CreateInstance(Type type, Boolean nonPublic) +83 System.Activator.CreateInstance(Type type) +6 System.Web.Mvc.DefaultControllerActivator.Create(RequestContext requestContext, Type controllerType) +55

[InvalidOperationException: An error occurred when trying to create a controller of type 'Mitchell.ClaimsAuditAdmin.Web.Controllers.ClaimAuditAdminController'. Make sure that the controller has a parameterless public constructor.] System.Web.Mvc.DefaultControllerActivator.Create(RequestContext requestContext, Type controllerType) +179
System.Web.Mvc.DefaultControllerFactory.GetControllerInstance(RequestContext requestContext, Type controllerType) +80
System.Web.Mvc.DefaultControllerFactory.CreateController(RequestContext requestContext, String controllerName) +74
System.Web.Mvc.MvcHandler.ProcessRequestInit(HttpContextBase httpContext, IController& controller, IControllerFactory& factory) +197 System.Web.Mvc.MvcHandler.BeginProcessRequest(HttpContextBase httpContext, AsyncCallback callback, Object state) +49
System.Web.Mvc.MvcHandler.BeginProcessRequest(HttpContext httpContext, AsyncCallback callback, Object state) +50
System.Web.Mvc.MvcHandler.System.Web.IHttpAsyncHandler.BeginProcessRequest(HttpContext context, AsyncCallback cb, Object extraData) +16
System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +301 System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +155

-------------------------------------------------------------------------------- Version Information: Microsoft .NET Framework Version:4.0.30319; ASP.NET Version:4.0.30319.17929 }

回答

1

激活试图建立与乌尔构造parametrless控制器。但是虽然您的控制器构造函数具有参数

public ClaimAuditAdminController(IClaimsAuditAdminRepository claimAuditAdminRepository) <--this place 
    { 
     this.claimAuditAdminRepository = claimAuditAdminRepository; 
    } 

发生异常。 尝试从构造函数中删除param或尝试覆盖DefaultControllerFactory 并使用参数创建控制器。

外观here

相关问题