2012-03-25 36 views
6

Possible Duplicate:
ASP.NET MVC: No parameterless constructor defined for this objectHttpPost - Bir ASP.NET MVC3 uygulama üzerinde çalışıyorum

"Bu nesne için tanımlanan yok parametresiz oluşturucu".

Bir kullanıcı bir formda girdiğinde bilgi almak için [HttpPost] kullanmaya çalışıyorum.

oturtmakta ben şu var "varsayılan" boş ASP.Net projenin Oturum açma komut dosyalarını kapalı ne: Benim denetleyicisi olarak

:

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); 
    } 

Ve View ben vardır:

(açık bir şekilde yinelenen şeyleri keser).

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

herkes bu sorunun çözümüyle ilgili bazı tavsiyelerde Can: Ben düğmesini tıkladığında

Ancak, bir hata alıyorum?

+1

Parametre yapıcısı hangi nesne eksik? Eğer sizinkilerden biri ise, karanlıkta bir bıçak alıp buna parametrik olmayan bir kurucu ekleyebilirsiniz. –

+0

Yığın İzinde bulunan hiçbir şey sınıflarımdan biri değil. :( – TZHX

+0

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

cevap

16

Sınıfınız MMCR.Models.Ticket parametresiz bir kurucuya ihtiyaç duyar.

Bu tür bir nesneyi İletme yöntemiyle ilettiğinizde, MVC, parametresiz bir kurucu kullanarak sınıfın bir örneğini oluşturur. Daha sonra form alanlarını bu nesneye eşler.

+0

herhangi bir bilgi formda olmayan modelde yeni modelde kaybolur? – TZHX

+2

Bu doğrudur.Eğer tutmak istediğiniz bilgiye sahipseniz, bunu Html.HiddenFor (x => x.PropertyToKeep) aracılığıyla görüntüye eklemelisiniz. –

+0

Ama ... Ben sadece aktarımlar üzerinden aktarılmayan etiketler olarak görüntülendiğimi garanti ediyorum.:/ – TZHX

İlgili konular