У меня довольно сложная страница CRM, которая позволяет пользователю планировать занятия (например, где люди действительно посещают и учатся). Создание осуществляется через модальное поле, которое позволяет заполнить некоторые поля и нажать кнопку «Сохранить». Это представление собирает данные, введенные в объект, и передает их C#.
Или, по крайней мере, в этом и заключается цель. Я делал это сотни раз на других страницах, без проблем, но в этом случае я получаю сообщение об ошибке «Нет конструктора без параметров для этого объекта». Дело в том, что он не должен быть без параметров - я передаю ему параметры.
AngularJS (1.7.5):
scAPI.DoTheThing({
classId : vm.item.Class.ClassId,
venueId : vm.item.Class.VenueId,
courseDate : vm.item.Class.CourseDate,
startTime : vm.item.Class.StartTime,
cost : vm.item.Class.Cost,
complianceComment: vm.item.Class.ComplianceComment,
isPrivate : hasValue(vm.item.Class.Private) ? vm.item.Class.Private : false,
instructors : vm.item.Instructors
})
.then(
function(result) {
var bob = 1;
}
)
.catch(function(errorOne) {
handleApiCallError(errorOne,
function() {
vm.readOnly = false;
vm.classSaving = false;
});
});
Все параметры имеют значения ... "scAPI.DoTheThing" запускает этот вызов:
DoTheThing: function (params, error) {
return $http
.post("/SchoolManagement/NewScheduledClass", params)
.then(handleNGV4Success)
.catch(function (e) {
handleNGV4Error(e, error);
});
}
, который, в свою очередь, должен использовать этот метод C#:
public ActionResult NewScheduledClass(int classId, int venueId, string courseDate, string startTime, decimal cost, string complianceComment, bool isPrivate,
IEnumerable<InstructorDataWithRoles> instructors)
{
var cDate = parseDate(courseDate);
var sTime = parseDate(startTime);
var newClass = _smap.NewScheduledClass(classId, venueId, cDate, sTime, cost, complianceComment, isPrivate, instructors);
var result = new
{
newClass
};
return HandleRequest(() => result);
}
Как я уже говорил, в этом приложении сотни раз я выполнял такой же вызов метода, без проблем, но в этом случае у меня проблемы. Единственное, что я делаю по-другому в этом C# controller.cs - это то, что Controller является частичным классом. Этот конкретный контроллер обрабатывает функциональность на 5 вкладок в пользовательском интерфейсе, и я подумал, что было бы лучше поместить код конца каждой вкладки в отдельные файлы классов (простота обслуживания). Это было первое в своем роде в нашем решении, и все остальные вкладки работают нормально, но эта просто почему-то испорчена.