Oi, Ulisses, tudo bem?
O Razor, view engine padrão do AspNet MVC, permite que utilizemos código csharp dentro das páginas. Então é possível colocar código desnecessário dentro de uma view, por exemplo:
@ {
var diasDaSemana = new List<string>
{
"Segunda",
"Terça",
"Quarta",
"Quinta",
"Sexta",
"Sábado",
"Domingo"
};
}
<ul>
@foreach(string dia in diasDaSemana)
{
<li>@dia</li>
}
</ul>
Cabe ao desenvolvedor usar seu senso crítico (como você bem o fez!) para separar código específico para aquela view de código que pode ser utilizado em outros pontos de sua aplicação.
Em relação a sua pergunta sob padrões de mercado: em minha experiência o Razor continua sendo o padrão para views em aplicações AspNet (quem tiver outras opiniões, por favor se manifeste aqui). Entretanto, não é recomendado escrever muito código nas views Razor, apesar de ser possível. Como o Alberto escreveu, deixe para o controlador preparar as informações que serão usadas nas views.
Além disso, o Razor pode ser trocado por outras view engines, que usam seus próprios padrões de templating (como o motor irá substituir algum script por informação dinâmica).
Sua preocupação também foi a dos membros do time que desenvolveram o AspNet Core MVC. Para melhorar a limpeza do HTML de suas views, o time criou os chamados Tag Helpers, onde o código fica escondido nas tags HTML através de atributos que começam com o prefixo asp
. Se você for utilizar o Core em suas aplicações, vale a pena estudar e usar os tag helpers!
Espero que tenha ajudado em sua questão.