I have a simple Model:
public class MyModel
{
public string Text{get;set;}
}
I have a View, which renders Text property of MyModel:
<p>@Model.Text</p>
How can I render html tags from Text like tags? For example, I have Text "<b>Text</b>
". I want to get bold text inside tag p as result:
Text
But Razor renders text as is:
<b>Text</b>
From the docs, "Razor Pages can make coding page-focused scenarios easier and more productive than using controllers and views." If your ASP.NET MVC app makes heavy use of views, you may want to consider migrating from actions and views to Razor Pages.
Razor is not a programming language. It's a server side markup language.
Razor uses the syntax "@* .. *@" for the comment block but in a C# code block we can also use "/* */" or "//". HTML comments are the same, "<!
I think you need to use it like:
<p>@Html.Raw(Model.Text)</p>
You can find more info here on Phil Haack's blog.
anurse points out in the comments that you could, alternatively, set the type of the Text
member of your View Model type as IHtmlString
and just use @Model.Text
to output it. ASP.NET MVC is clever enough to realize that the output should not be escaped.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With