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: }
Я следовал за книгой Стивена Сандерсона «Pro ASP.NET MVC Framework». На стр. 132, в соответствии с рекомендацией автора, я загрузил сборку ASP.NET MVC Futures и добавил ее в мой проект MVC. [Примечание: это может быть красная селедка.]ASP.NET MVC: для данного объекта нет конструктора без параметров
После этого я больше не мог загружать свой проект. Вышеприведенная ошибка остановила меня.
Мой вопрос: не, «Не могли бы вы помочь мне исправить свой код?»
Вместо этого, я хотел бы в более общем узнать:
- Как я должен решить эту проблему?
- Что я должен искать?
- В чем может быть причина?
Похоже, я должен понимать маршрутизаторы и контроллеры на более глубоком уровне, чем сейчас.
Когда POSTing данные JSON к моему действию, я получал аналогичную ошибку. Оказывается, моя модель, к которой он пытается привязываться, не имеет конструктора без параметров! – Tim
NB: У меня есть эта проблема (без параметрического bla bla ...) во время сериализации, если я определяю конструктор, а не произвольный конструктор. Я хочу сказать, что в этом примере, если вы удаляете созданный вами конструктор (общедоступный MyModel (помощник IHelper) {}), проблема исчезает ... поэтому каждый раз, когда вы создаете конструктор, вам нужно создать без параметров ... Я могу понять что: когда вы начинаете определять конструктор, система не рискует создавать «объекты по умолчанию», потому что не знает, имеет ли смысл ... что-то вроде этого. –
Кортежи ... возможно, для некоторых других людей, которые приходят сюда: если у вас есть только Tuples (например, Tuple data;) в вашем классе, сериализация будет в порядке (потому что я столкнулся с этой проблемой во время сериализации JSON) .. но если вы используете что-то вроде List > data; вы начнете с ошибки «no parameterless contructor». Потому что .Net не может/не создавать Tuples (у меня нет ссылок для этого, но Tuple data = new Tuple (); не будет компилироваться ... while Tuple data = new Tuple ("", ""); нормально. –