2012-03-25 2 views
6

Possible Duplicate:
ASP.NET MVC: No parameterless constructor defined for this objectHttpPost를 - 내가 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.

사람이이 문제를 해결하는 방법에 대한 몇 가지 조언을 줄 수 : I 버튼을 클릭하면

그러나, 오류가 발생합니다?

+1

매개 변수없는 생성자가 누락 된 개체는 무엇입니까? 그것이 당신의 것이라면 어둠 속에서 찔러보고 매개 변수없는 생성자를 추가 할 수 있습니다. –

+0

스택 추적의 항목 중 하나는 내 수업 중 하나입니다. :( – TZHX

+0

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

답변

16

클래스 MMCR.Models.Ticket에는 매개 변수없는 생성자가 필요합니다.

이 형식의 개체를 Post 메서드를 통해 전달하면 MVC는 매개 변수없는 생성자를 사용하여 클래스 인스턴스를 만듭니다. 그런 다음 양식 필드를 해당 개체에 매핑합니다.

+0

그래서 모든 정보 새 모델에서 양식에없는 모델의 데이터가 손실됩니다 . – TZHX

+2

올바른 정보입니다. 유지하려는 정보가 있으면 Html.HiddenFor (x => x.PropertyToKeep)를 통해 뷰에 추가해야합니다. –

+0

하지만 그 레이블은 전송 된 것으로 표시되지 않습니다./ – TZHX

관련 문제