Return html string from controller and display in

2019-05-04 01:45发布

问题:

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.

回答1:

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

MVC3:
@Html.Raw(Model.Description)



回答2:

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.



回答3:

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