Механизм просмотра сохраняет разрывы строк и пробелы для создания разборчивого HTML.
Я не понимаю, почему вы ожидаете, что они будут удалены автоматически, но простой идеей было бы не вставлять их в первую очередь:
document.write('<table> @foreach (var p in Model){<tr><td> ... }</table>');
Теперь это, вероятно, не компилируется, просто основная идея.
Это должно скомпилировать. Просто уродливый макет.