Обновление Родительских/Дочерних Записей с образцовыми редакторами связей в ASP.NET MVC

@Daren Thomas: Я соглашаюсь, но необходимо использовать модуль платформы для определения, какой интерпретатор Вы выполняете.

5
задан KP. 9 July 2009 в 12:35
поделиться

3 ответа

Я не знаю ' Я сам не смог это сделать.

Я знаю, что вы можете обновить единственный дочерний элемент, то есть 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 может потенциально привести к обновлению неправильного объекта.

Надеюсь, что это поможет, Джеймс

4
ответ дан 15 December 2019 в 01:08
поделиться

Хорошо, никто не отвечает. Я не знаю приложение nerddinner, но меня заинтересовала ваша проблема. Надеюсь увидеть ответы, но пока их нет. Не уверен на 100% из-за незнания ndinner, но может ли это быть связано с этим сообщением , где упоминается привязка / обновление только тогда, когда свойство явно передается?

0
ответ дан 15 December 2019 в 01:08
поделиться

Ваш вопрос в том, обновляет ли родительские / дочерние записи за один раз, вызывая UpdateModel (Parent); возможно ли с текущими моделями папок?

Да, это возможно. Однако это невозможно (без некоторых незначительных обходных решений), если вы используете Linq-to-Sql и ваши дочерние объекты отображаются через EntitySet вместо чего-то вроде ] IList . Я считаю, что это будет (было?) Решено в следующей версии MVC, которая должна выйти с ASP.NET 4.0. Однако в настоящее время связыватель модели MVC по умолчанию, похоже, не понимает, как работать с EntitySet.

См. Этот другой ответ , который я написал некоторое время назад на связанный вопрос, с подробностями о как я сейчас справляюсь (обхожу) эту ситуацию в некоторых простых случаях. При этом мне пришлось перестать так сильно беспокоиться о том, насколько «идеально» это решение с точки зрения DDD / OOP, как о компромиссе, чтобы просто заставить MVC и LTS работать вместе с минимальными усилиями.

Обратите внимание, я признаю, что решение Джеймса S, вероятно, более "чистое", но для того, чтобы сделать это "одним выстрелом", как вы просите, вам нужно либо дождаться ASP.NET 4.0, либо

0
ответ дан 15 December 2019 в 01:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: