Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to use Razor like asp:Literal?

Tags:

razor

tags

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>
like image 529
greatromul Avatar asked Apr 04 '11 08:04

greatromul


People also ask

Is Razor pages better than MVC?

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.

Is Razor a scripting language?

Razor is not a programming language. It's a server side markup language.

How can you comment using Razor syntax?

Razor uses the syntax "@* .. *@" for the comment block but in a C# code block we can also use "/* */" or "//". HTML comments are the same, "<!


1 Answers

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.

like image 198
paracycle Avatar answered Oct 14 '22 10:10

paracycle