System.MissingMethodException: Keine parameterlosen Konstruktor für dieses Objekt definiert
Ich bin mit MVC 2.0 mit Html.ListBoxFor wie folgt:
<% using (Html.BeginForm()) { %>
<input type="submit" value=">" />
<%= Html.ListBoxFor(x => x.lstTest, new MultiSelectList(new [] {"someone", "crap", "why"})) %>
<% } %>
Wenn ich auf die input-submit-button mit nichts ausgewählt ist, sendet es wieder gut, wenn ich wählen Sie eines der 3 Elemente in der listbox-es wirft diese Fehlermeldung:
System.MissingMethodException: No parameterless constructor defined for this object.
Irgendwelche Ideen? hier meine controller-code:
[HandleError]
public class HomeController : Controller
{
public HomeController()
{
}
public ActionResult Index()
{
ViewData["Message"] = "Test Harness";
return View();
}
[HttpGet]
public ActionResult About()
{
ViewData["mykey"] = "Test Harness";
LogOnModel model = new LogOnModel();
model.lstTest = new MultiSelectList(new [] {"A", "B", "C"});
return View(model);
}
[HttpPost]
public ActionResult About(LogOnModel model)
{
ViewData["mykey"] = "Test Harness";
model.lstTest = new MultiSelectList(new [] { "" });
return View(model);
}
}
InformationsquelleAutor Whyyy | 2010-08-13
Schreibe einen Kommentar Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Macht Ihr LogOnModel haben einen parameterlosen Konstruktor? Es braucht ein für die DefaultModelBinder zu instanziieren. Darüber hinaus, wenn Sie buchen die Ausnahme, poste bitte die vollständige Stapelüberwachung der Ausnahme-Objekt, sonst sind wir einfach zu raten, wo der Fehler stattgefunden hat.
Dieser Fehler kommt von der ControllerFactory nicht die Sicht. Es ist besagt, dass Sie nicht über eine paramerless Konstruktor in Ihrer Steuerung. Die DefaultControllerFactory für ASP.NET MVC kann nur instanziieren ein Controller mit einem öffentlichen parameter weniger Konstruktor. Wenn Sie die plugin-eigene ControllerFactory und einige DI/IoC-tool umgehen Sie diese Einschränkung.