ASP.NET MVC 6 – Razor com suporte ao Async e Flush

O Razor é uma view engine extremamente poderosa, com uma sintax simples e limpa de utilizar. Entre as novidades do ASP.NET 5 estão varias melhorias desta view engine (lembrando que o Razor é uma view engine independente do ASP.NET MVC, sendo utilizada para varias outras coisas).

Entre os principais recursos novos estão o suporte ao Async e o Flush parcial da resposta do html para o usuário, a idéia deste post é mostrar um pouco como estão estas duas novas features.

Async e Razor

Uma grande mudança foi a implementação do suporte ao desenvolvimento assíncrono também no Razor, com isto, podemos utilizar métodos ou até a nossa Model com Async, isto pode parecer um pouco estranho para alguns padrões de projetos MVC, mas vale lembrar que além do MVC o Razor é utilizado em varias outras coisas como geração de html para emails, entre outros usos.

Com isto podemos por exemplo, que nossa ViewModel utilize Tasks em propriedades e somente no momento de utilizar estes dados na View utilizamos o Await.

Continue reading

MVC3 e Razor: Section [como sobrescrever um bloco definido na layout]

Hoje durante o trabalho tive uma dúvida da maneira de implementar uma forma de criar um bloco no arquivo Layout, ou na MasterPage (WebForms) que fosse sobrescrito por uma seção que esteja definido na view.

De uma maneira ilustrativa, eu precisava definir um rodapé no arquivo Layout que será utilizado em varias partes do site, entretanto, caso eu precise, irei sobrescrever esse rodapé na View.

Continue reading