#c# #asp.net #.net #razor
#c# #asp.net #.net #razor
Вопрос:
Итак, у меня есть представление razor, и я даю ему около 1000 записей. У меня есть цикл foreach вокруг этих записей, и они просто отображают строку таблицы для каждой записи.
Примечание: я могу добиться того же с помощью React очень быстро, но я хочу использовать MVC Razor Views.
<table>
@foreach (var b in @Model) {
@<tr>
....
</tr>
}
</table>
Рендеринг этого занимает около 20-30 секунд, что я делаю не так и что я упускаю?
Получение данных из базы данных занимает около половины секунды. Таким образом, медлительность не относится к части DB.
Комментарии:
1. Можете ли вы опубликовать результат typeof(@Model)?
2. Упомянутые вами 20-30 секунд были записаны во время отладки / разработки или после развертывания?
3. Что именно вы делаете в
foreach
? Вы просто отображаете данные или отправляетесь в базу данных?4. Если вы только один раз обращаетесь к переменной b в каждом цикле, вам следует использовать for вместо foreach , это немного ускорит процесс.
5. Модель довольно большая, но по сути это просто набор отображаемых строковых полей. Данные и вся логика уже выполнены и готовы к работе, когда дело доходит до представления razor. Внутри forloop я проверяю if, а затем отображаю данные, нет подключения к базе данных. Это происходит при отладке и в prod.