@Daren Thomas: Я соглашаюсь, но необходимо использовать модуль платформы для определения, какой интерпретатор Вы выполняете.
Я не знаю ' Я сам не смог это сделать.
Я знаю, что вы можете обновить единственный дочерний элемент, то есть Dinner.RSV автоматически. Я никогда не видел возможности обновить дочерний перечислимый объект, для чего потребовалась бы привязка, чтобы знать, какое свойство является идентификатором, и искать его (например, Dinner.RSVP.Where (r => r.RSVP_ID == input_id), а затем обновить это). Я недостаточно знаю о пользовательской привязке, чтобы делать что-то подобное.
Однако я сделал цикл и указал rsvp и int в качестве префикса:
Итак, вы делаете:
UpdateModel("Dinner", Dinner);
, чтобы обновить родительский объект, а затем:
int i = 0;
foreach (var r in Dinner.RSVPs) {
UpdateModel(r, "Dinner.RSVPs[" + i++ + "]");
}
Не так чисто, но у меня работает хорошо. Однако для создания валидации может потребоваться немного больше усилий (вы хотите проверить все одновременно и убедиться, что вы не перескакиваете обратно к представлению на первом RSVP с ошибкой).
EDIT : исправлен код, отражающий решение OP, включая ошибку в моем порядке параметров. С учетом сказанного, мне удобнее использовать свойство RSVP.ID, чем текущее целое число. Если вы знаете, что Dinner.RSVP будет таким же в POST, что и GET (я уверен в этом в своем коде), тогда использование RSVP.ID будет работать. Если ответы на запросы будут разными, обновятся только те, кто присутствует на обоих. Однако использование последовательного int может потенциально привести к обновлению неправильного объекта.
Надеюсь, что это поможет, но у меня это работает хорошо. Однако для создания валидации может потребоваться немного больше усилий (вы хотите проверить все одновременно и убедиться, что вы не перескакиваете обратно к представлению на первом RSVP с ошибкой).
EDIT : исправлен код, отражающий решение OP, включая ошибку в моем порядке параметров. С учетом сказанного, мне удобнее использовать свойство RSVP.ID, чем текущее целое число. Если вы знаете, что Dinner.RSVP будет таким же в POST, что и GET (я уверен в этом в своем коде), тогда использование RSVP.ID будет работать. Если ответы на запросы будут разными, обновятся только те, кто присутствует на обоих. Однако использование последовательного int может потенциально привести к обновлению неправильного объекта.
Надеюсь, что это поможет, но у меня это работает хорошо. Однако для создания валидации может потребоваться немного больше усилий (вы хотите проверить все одновременно и убедиться, что вы не перескакиваете обратно к представлению на первом RSVP с ошибкой).
EDIT : исправлен код, отражающий решение OP, включая ошибку в моем порядке параметров. С учетом сказанного, мне удобнее использовать свойство RSVP.ID, чем текущее целое число. Если вы знаете, что Dinner.RSVP будет таким же в POST, что и GET (я уверен в этом в своем коде), тогда использование RSVP.ID будет работать. Если ответы на запросы будут разными, обновятся только те, кто присутствует на обоих. Однако использование последовательного int может потенциально привести к обновлению неправильного объекта.
Надеюсь, что это поможет, хотя (вы хотите проверить все одновременно и убедиться, что вы не вернетесь к представлению на первом RSVP с ошибкой).
РЕДАКТИРОВАТЬ : исправлен код, отражающий решение OP, включая ошибку в моем порядке параметров. С учетом сказанного, мне удобнее использовать свойство RSVP.ID, чем текущее целое число. Если вы знаете, что Dinner.RSVP будет таким же в POST, что и GET (я уверен в этом в своем коде), тогда использование RSVP.ID будет работать. Если ответы на запросы будут разными, обновятся только те, кто присутствует на обоих. Однако использование последовательного int может потенциально привести к обновлению неправильного объекта.
Надеюсь, что это поможет, хотя (вы хотите проверить все одновременно и убедиться, что вы не вернетесь к представлению на первом RSVP с ошибкой).
РЕДАКТИРОВАТЬ : исправлен код, отражающий решение OP, включая ошибку в моем порядке параметров. С учетом сказанного, мне удобнее использовать свойство RSVP.ID, чем текущее целое число. Если вы знаете, что Dinner.RSVP будет таким же в POST, что и GET (я уверен в этом в своем коде), тогда использование RSVP.ID будет работать. Если ответы на запросы будут разными, обновятся только те, кто присутствует на обоих. Однако использование последовательного int может потенциально привести к обновлению неправильного объекта.
Надеюсь, что это поможет, s решение, включая ошибку в моем порядке параметров. С учетом сказанного, мне удобнее использовать свойство RSVP.ID, чем текущее целое число. Если вы знаете, что Dinner.RSVP будет таким же в POST, что и GET (я уверен в этом в своем коде), тогда использование RSVP.ID будет работать. Если ответы на запросы будут разными, обновятся только те, кто присутствует на обоих. Однако использование последовательного int может потенциально привести к обновлению неправильного объекта.
Надеюсь, что это поможет, s решение, включая ошибку в моем порядке параметров. С учетом сказанного, мне удобнее использовать свойство RSVP.ID, чем текущее целое число. Если вы знаете, что Dinner.RSVP будет таким же в POST, что и GET (я уверен в этом в своем коде), тогда использование RSVP.ID будет работать. Если ответы на запросы будут разными, обновятся только те, кто присутствует на обоих. Однако использование последовательного int может потенциально привести к обновлению неправильного объекта.
Надеюсь, что это поможет, тогда будут обновлены только те, кто присутствует на обоих. Однако использование последовательного int может потенциально привести к обновлению неправильного объекта.
Надеюсь, что это поможет, тогда будут обновлены только те, кто присутствует на обоих. Однако использование последовательного int может потенциально привести к обновлению неправильного объекта.
Надеюсь, что это поможет, Джеймс
Хорошо, никто не отвечает. Я не знаю приложение nerddinner, но меня заинтересовала ваша проблема. Надеюсь увидеть ответы, но пока их нет. Не уверен на 100% из-за незнания ndinner, но может ли это быть связано с этим сообщением , где упоминается привязка / обновление только тогда, когда свойство явно передается?
Ваш вопрос в том, обновляет ли родительские / дочерние записи за один раз, вызывая UpdateModel (Parent); возможно ли с текущими моделями папок?
Да, это возможно. Однако это невозможно (без некоторых незначительных обходных решений), если вы используете Linq-to-Sql и ваши дочерние объекты отображаются через EntitySet
вместо чего-то вроде ] IList
. Я считаю, что это будет (было?) Решено в следующей версии MVC, которая должна выйти с ASP.NET 4.0. Однако в настоящее время связыватель модели MVC по умолчанию, похоже, не понимает, как работать с EntitySet.
См. Этот другой ответ , который я написал некоторое время назад на связанный вопрос, с подробностями о как я сейчас справляюсь (обхожу) эту ситуацию в некоторых простых случаях. При этом мне пришлось перестать так сильно беспокоиться о том, насколько «идеально» это решение с точки зрения DDD / OOP, как о компромиссе, чтобы просто заставить MVC и LTS работать вместе с минимальными усилиями.
Обратите внимание, я признаю, что решение Джеймса S, вероятно, более "чистое", но для того, чтобы сделать это "одним выстрелом", как вы просите, вам нужно либо дождаться ASP.NET 4.0, либо