13

I have a Model filed that returns an HTML string with line break BR tag, but How do I display that HTML on the browser ? The problem ins instead putting the line break, the Tag itself displaying on the UI

I tried to put the model within Html.Raw(modelItem => item.Speaking), but it never works as it expecting a string inside, and Cannot convert lambda expression to type 'string' because it is not a delegate type

Below is the code and comments what I've tried.

<div>
  @{          
     string strTest = "<br/>Line 1 <br/> Line 2<br>";
     @Html.Raw(strTest); //This works and display as expected
     @MvcHtmlString.Create(strTest); //This works and display as expected       

     @Html.Raw(Html.DisplayFor(modelItem => item.Speaking)); //This doesn't work, its show the <br />  on the screen     
     @MvcHtmlString.Create(Html.DisplayFor(modelItem => item.Speaking).ToString());   //This doent work, its show the <br />  on the screen  
     @Html.Raw(modelItem => item.Speaking) //This throw error Cannot convert lambda expression to type string                                     
    }

 </div>

Appreciate any help or suggestions. thanks in advance!

1
  • I have changed my answer, take a look. Commented Aug 21, 2014 at 16:08

5 Answers 5

15

Try this :

@(new HtmlString(stringWithMarkup))

and you can create a HTML helper too!:

@helper RawText(string s) {
    @(new HtmlString(s))
}
Sign up to request clarification or add additional context in comments.

3 Comments

Thanks Qualid for the response, but that didn't work. I want to know the way to pass the model value as a input to the HtmlString. @(new HtmlString(Html.DisplayFor(modelItem => item.Speaking).ToString())) This gives me the string with markup.
i just had to use :) Thanks people who took a look at the query! @Html.Raw(item.Speaking) I got the answer from, forums.asp.net/p/2004322/…
It works with MVC 5, in case you just display the HTML content in a view.
11

In MVC4

Instead of using @Html.Raw(modelItem => item.Speaking)

You can use @Html.Raw(@Model.Speaking.ToString())

It works for me and I hope this help someone else too

1 Comment

This is an old post but the above didn't work for me, but this did: @HTML.Raw(item.Speaking.ToString()
9

You can just omit both DisplayFor and modelItem =>, so:

@Html.Raw(item.Speaking)

Comments

1

MVC 5

@Html.Raw(WebUtility.HtmlDecode(item.Speaking))

Comments

0

Worked me on Dotnet Core 8

on code behind 

Description = Description.Replace("\r\n", "<br>");
on razor page

 @Html.Raw(item.Description)

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.