MuriloKunze
MuriloKunze

Reputation: 15583

Return html string from controller and display in view

How can I return a model with a string propertie containing <li> elements and display it in view? If I just write @Model.Messages it shows all the string.. i need it in html format.

Upvotes: 16

Views: 42546

Answers (3)

Kim Tranjan
Kim Tranjan

Reputation: 4541

You can use the Content method with the Content-Type text/html to return the HTML directly, without the need of Html.Raw.

public ActionResult MyHtmlView() {
    return Content("<html><body>Ahoy.</body></html>", "text/html")
}

You can pass whatever Content-Type you want, such text/xml.

Upvotes: 32

Niranjan Singh
Niranjan Singh

Reputation: 18290

Use Server.HtmlEncode() to send html to view and then use the Server.HtmlDecode() to get the html to display on the view.

Then you can use @Html.Raw(Server.HtmlDecode(str)).

Try this:

<div class='content'>     
   @Html.Raw(HttpUtility.HtmlDecode(Model.Message)); 
</div> 

Ref: Display encoded html with razor

Upvotes: 8

web_bod
web_bod

Reputation: 5758

You don't say which rendering engine you're using:

MVC3:
@Html.Raw(Model.Description)

Upvotes: 7

Related Questions