1. ホーム
  2. c#

[解決済み] ASP.NET MVC: このオブジェクトには、パラメータなしのコンストラクタが定義されていません。

2022-01-29 12:42:51

質問

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:         }

私は、スティーブン・サンダーソンの' プロASP.NET MVCフレームワーク の本です。132ページで、著者の推奨に従って、ASP.NET MVC Futuresアセンブリをダウンロードし、私のMVCプロジェクトに追加しました。[注:これは赤信号の可能性があります]。

この後、プロジェクトをロードすることができなくなりました。上記のエラーで止まってしまいました。

私の質問は ではなく , "Could you help me fix my code?"

そうではなく、もっと一般的なことを知りたい。

  • この問題のトラブルシューティングはどのように行うべきですか?
  • 何を調べればいいのですか?
  • 根本的な原因は何でしょうか?

ルーティングとコントローラを今よりもっと深いレベルで理解したほうがよさそうですね。

どのように解決するのか?

ちょうど同じような問題がありました。同じ例外が Model にはパラメータなしのコンストラクタがありません。

コールスタックは、モデルの新しいインスタンスを作成するためのメソッドを考えていました。

<ブロッククオート

System.Web.Mvc.DefaultModelBinder. モデル作成 (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
    {
    }
}