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");
}
}
}
我知道这个问题已被多次询问,但在阅读了所有那些类似的问题之后,我无法跟踪我的 error.I 将调试器放在我的控制器的 Constructor(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 请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪来识别有关异常的起源和位置的信息。
堆栈跟踪:
[5] 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
[6] System.Web.Mvc.DefaultControllerActivator.Create(RequestContext requestContext,Type controllerType)179
System.Web.Mvc.DefaultControllerFactory.GetControllerInstance(RequestContext requestContext,输入 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 回调,对象状态)49
System.Web.Mvc.MvcHandler.BeginProcessRequest(HttpContext httpContext,AsyncCallback 回调,对象状态)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 Version:4.0.30319; ASP.NET Version:4.0.30319.17929}
1 回答
试图用参数化构造函数创建 ur 控制器的激活器。但是你的控制器构造函数有参数
发生异常。尝试从构造函数中删除 param 或尝试覆盖 DefaultControllerFactory 并使用参数创建控制器。
看这里