I have a RegisterModel view model I use for my new account registration page. Depending on the status of a registration task, the model has a relevant text message to display for the user, e.g. “Waiting for email confirmation” etc.
I currently populate this string property in the manner below, but couldn’t help wondering about mixing markup and content like I do with the <p> tags. Is there a better or more accepted way of doing this, besides having multiple partial views with actual HTML literals instead of model properties?
RegisterMessage = "<p>Please use the form below to create a new account.</p>";
RegisterMessage = string.Format("<p>Passwords are required to be a minimum of {0} characters in length.</p>", _membershipService.MinRequiredPasswordLength);
EDIT: I have just noticed that the <p> tags are rendering literally, but I doubt that issue falls under the same question.
You could use a status property in the view model and in the view:
and if you wanted to render HTML literals in Razor without encoding them:
But the example you have shown seems like a validation error message which could also be stored in a resources file.