4
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");
        }



    }
}

我知道这个问题已经被问过很多次了,但是在阅读了所有这些类似的问题之后,我无法跟踪我的错误。我已经将调试器放在了我的控制器的构造函数(ClaimAuditAdminController)中,但调试器没有去那里。我的Route.Config

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 }
            );
        }

我的错误的屏幕截图是

异常详细信息:System.MissingMethodException:没有为此对象定义无参数构造函数。

源错误:

在执行当前 Web 请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪来识别有关异常起源和位置的信息。

堆栈跟踪:

[MissingMethodException: 没有为此对象定义无参数构造函数。] 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:尝试创建类型为“Mitchell.ClaimsAuditAdmin.Web.Controllers.ClaimAuditAdminController”的控制器时发生错误。确保控制器有一个无参数的公共构造函数。] 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

-------------------------------------------------- ------------------ 版本信息:Microsoft .NET Framework 版本:4.0.30319;ASP.NET 版本:4.0.30319.17929 }

4

1 回答 1

2

激活器尝试使用无参数构造函数创建您的控制器。但是当你的控制器构造函数有参数时

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

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

这里

于 2013-05-26T13:01:05.493 回答