2012-03-25 10 views
6

Possible Duplicate:
ASP.NET MVC: No parameterless constructor defined for this objectHttpPost ASP.Net MVC3に - "このオブジェクトのために定義されていませんパラメータなしのコンストラクタ"

私は、ASP.NET MVC3アプリケーションに取り組んでいます。

私は[HttpPost]を使用して、ユーザーがフォームに情報を入力したときに情報を取得しようとしています。

基づか私は、私は、次のしている「デフォルト」の空白ASP.Netプロジェクトのログオンスクリプトオフ何をすべきか:私のコントローラで

public ActionResult Ticket(int id) 
    { 
     Models.Ticket model = new Models.Ticket(id); 
     return View("Ticket", model); 
    } 

    [HttpPost] 
    public ActionResult Ticket(int id, MMCR.Models.Ticket model) 
    { 
     if (id != model.TicketNo) 
     { 
      return View("Error"); 
     } 
     return View("Ticket", model); 
    } 

、ビューに私が持っている:

@using (Html.BeginForm()) { 
    <div> 
    <fieldset> 
    <legend>View Ticket Details</legend> 

    <div class="editor-label"> 
     @Html.LabelFor(m=>m.Status)  
    </div> 
    <div class="editor-field"> 
     @Html.DropDownListFor(m=>m.Status, Model.Status) 
    </div> 

    <p> 
     <input type="submit" value="Update" /> 
    </p> 

    </fieldset> 
    </div> 
} 

(明らかに反復的なものを除外)。私はボタンをクリックしたときに

はしかし、私はエラーを取得する:

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

誰もがこれを解決する方法についていくつかのアドバイスを与えることはできますか?

+1

パラメータのないコンストラクタがないオブジェクトはどれですか?それがあなたのものなら、あなたは暗闇の中で刺すことができ、それにパラメータのないコンストラクタを追加することができます。 –

+0

Stack Traceの中の何も私のクラスのものはありません。 : – TZHX

+0

http://stackoverflow.com/q/1355464/102937 –

答えて

16

クラスMMCR.Models.Ticketには、パラメータのないコンストラクタが必要です。

この型のオブジェクトをPostメソッドで渡すと、MVCはパラメータのないコンストラクタを使用してクラスのインスタンスを作成します。フォームフィールドをそのオブジェクトにマップします。

+0

したがって、フォームにないモデルでは新しいモデルで失われていますか? – TZHX

+2

正しいです。保存したい情報がある場合は、Html.HiddenFor(x => x.PropertyToKeep)でビューに追加する必要があります。 –

+0

...しかし、私はそれが転送されていないラベルとして表示されているだけです:/ – TZHX

関連する問題