Uma dica simples para quem está trabalhando com projetos MVC utilizando Razor. Se precisar colocar um campo como leitura basta incluir no objeto htmlAttributes o valor readonly. Veja no exemplo abaixo uma implementação para um campo de texto:
@Html.TextBox("Name", null, new { @readonly = "readonly" })
Simples 😉
É bom deixar claro que você pode usar o objeto htmlAttributes para configurar outras propriedades do seu elemento HTML. Você pode por exemplo configurar uma classe css, a quantidade máxima de caracteres ou qualquer outro atributo suportado pelo elemento html em uso. Para usar mais de um valor apenas separe cada valor utilizando vírgula, como no exemplo abaixo:
@Html.TextBox("Name", null, new { @class = "form-control", @readonly = "readonly" })
Forte abraço!