小编典典

ASP.NET MVC:没有为此对象定义无参数构造函数

all

Server Error in '/' Application.
--------------------------------------------------------------------------------

No parameterless constructor defined for this object. 
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

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

Source Error:


Line 16:             HttpContext.Current.RewritePath(Request.ApplicationPath, false);
Line 17:             IHttpHandler httpHandler = new MvcHttpHandler();
Line 18:             httpHandler.ProcessRequest(HttpContext.Current);
Line 19:             HttpContext.Current.RewritePath(originalPath, false);
Line 20:         }

我正在关注 Steven Sanderson 的“ Pro ASP.NET MVC
Framework
”一书。在第 132
页,按照作者的建议,我下载了 ASP.NET MVC Futures 程序集,并将其添加到我的 MVC 项目中。[注意:这可能是一个红鲱鱼。]

在此之后,我无法再加载我的项目。上面的错误让我感到很冷。

我的问题 不是 “你能帮我修复我的代码吗?”

相反,我想更广泛地了解:

  • 我应该如何解决这个问题?
  • 我应该寻找什么?
  • 根本原因可能是什么?

看来我应该比现在更深入地了解路由和控制器。


阅读 80

收藏
2022-08-07

共1个答案

小编典典

我只是有一个类似的问题。当 aModel没有无参数构造函数时,也会发生同样的异常。

调用堆栈正在计算一种负责创建模型的新实例的方法。

System.Web.Mvc.DefaultModelBinder。 CreateModel (ControllerContext
controllerContext, ModelBindingContext bindingContext, Type modelType)


这是一个示例:

public class MyController : Controller
{
    public ActionResult Action(MyModel model)
    {

    }
}

public class MyModel
{
    public MyModel(IHelper helper) // MVC cannot call that
    {
        // ...
    }

    public MyModel() // MVC can call that
    {
    }
}
2022-08-07