Como mencionó en la respuesta de @Developer, probablemente codifique HTML en la entrada del usuario. Si está preocupado por XSS, probablemente nunca necesite la entrada del usuario en su forma original, por lo que también podría escapar de él (y reemplazar espacios y líneas nuevas mientras lo hace).
Tenga en cuenta que escapar en la entrada significa que debe usar @ Html.Raw o crear una MvcHtmlString para representar esa entrada en particular.
También puedes probar
System.Security.SecurityElement.Escape(userInput)
pero creo que tampoco escapará a los espacios. Entonces, en ese caso, sugiero simplemente hacer un .NET
System.Security.SecurityElement.Escape(userInput).Replace(" ", " ").Replace("\n", "<br>")
en la entrada del usuario. Y si desea profundizar en la usabilidad, tal vez pueda hacer un análisis XML de la entrada del usuario (o jugar con expresiones regulares) para permitir solo un conjunto predefinido de etiquetas. Por ejemplo, permitir
<p>, <span>, <strong>
... pero no permitas
<script> or <iframe>