Как привязать к объекту атрибут объекта в C#
Правильно рассмотрите этот сценарий, у меня есть отчет, и этот отчет имеет комментарии. Теперь, когда я показываю отчет, я хочу видеть комментарии и добавлять дополнительные комментарии, если это необходимо.
Итак, следовательно, у меня есть 3 объекта
MyReport
MyReportComment
MyReportCreateViewModel
Первые два там, чтобы я мог иметь отчет с комментариями, третий создан для обработки 2, и поэтому я могу создать представление.
Все хорошо, но теперь я хочу обработать этот пост - этого должно быть достаточно.
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Details(Models.MyReportCreateViewModel ViewCreateModel)
Я хочу быть уверен, что я хочу связать поле комментария (в MyReportComment) с полем в ViewCreateModel.MyReportComment, чтобы избежать чрезмерного размещения.
Как бы я это сделал? Обычно я бы сделал это.
[Bind(Include="Title,Content")] Models.MyReport report
Если бы это было "простое" представление с одним простым объектом, но я не вижу, как это сделать в этом случае.
1 ответ
Прямо здесь есть простой ответ, который вы не можете. Правильный день для этого - не передавать сложный объект вообще (хотя это можно сделать!)
Пройти id
и создать объект, который вы хотите затем использовать что-то вроде этого
if (TryUpdateModel(instructorToUpdate, "",
new string[] { "LastName", "FirstMidName", "HireDate", "OfficeAssignment" }))
Где LastName, FirstMidName и т. Д. Являются именами атрибутов класса, который вы пытаетесь обновить.
Это все заполнит ошибки и поможет таким образом.