Эта проблема может возникнуть при использовании метода ASP.NET MVC RedirectToAction. Чтобы предотвратить отображение формы в div, вы можете просто сделать какой-то фильтр ответа ajax для входящих ответов с $ .ajaxSetup. Если ответ содержит перенаправление MVC, вы можете оценить это выражение на стороне JS. Пример кода для JS ниже:
$.ajaxSetup({
dataFilter: function (data, type) {
if (data && typeof data == "string") {
if (data.indexOf('window.location') > -1) {
eval(data);
}
}
return data;
}
});
Если данные: "window.location = '/ Acount / Login'" выше фильтр поймает это и оценит, чтобы сделать перенаправление вместо того, чтобы отображать данные.
универсальное отношение , кажется, решение. Но это усложнит вещи еще больше.
Это кажется мне; Ваша образцовая структура уже более сложна, чем необходимый. Я просто объединился бы весь три Answer
модели в одну.Сюда:
Answer_Risk
работал бы без модификации. resident
ни на Одно (ПУСТОЕ) в случае Answer_A
. resident == None
. (другими словами; та же функциональность) Еще одна вещь; Ваши ответы, вероятно, будут иметь больше чем один риск? Если у них не будет ни одного или одного риска, необходимо рассмотреть после альтернативных реализаций:
Answer
класс. Мое основное беспокойство не является ни структурой базы данных, ни производительностью (хотя эти изменения должны улучшить производительность), но надежность кода .
Мой пищеварительный тракт должен был бы предложить удалить абстрактный модификатор на базовом классе. Вы получите ту же образцовую структуру, но Ответ будет своей собственной таблицей. Оборотная сторона этого - то, что, если это большие таблицы и/или Ваши запросы, сложны, запросы против него могли бы быть заметно медленнее.
, С другой стороны, Вы могли сохранить свои модели, как, но замените ForeignKey для Ответа GenericForeignKey. Что Вы теряете в синтаксическом сахаре образцового наследования, Вы получаете немного в скорости запроса.
я не полагаю, что возможно сослаться на абстрактную модель ForeignKey (или что-либо функционально то же).