0
var html = '@Html.Partial("_mypartialview")';
$("#container").html(html);

I am working in a single page application and I don't want to hide the container div element; instead I want to load the html content into my javascript object.

But I get the error:

Unterminated string constant.

I have tried various methods without any success. Any help as to why I get this error would be really appreciated.

theonlygusti
  • 11,032
  • 11
  • 64
  • 119
Dilip Nandakumar
  • 198
  • 2
  • 14

1 Answers1

2

Like this

var html = "@Html.Partial("_mypartialview").ToHtmlString().Replace("\n", "<br/>").Replace(" ", "")";

The ToHtmlString() method HTML encodes your html so the quotes won't confuse your JavaScript.

The two replace methods will remove new lines and whitespace so the content is all on one line.

Update

_mypartialview

 <div>
     <span data-bind="text:playerInfo.Name"> </span> 
</div> 

Code

 var html = "@Html.Partial("_mypartialview").ToString().Replace(Environment.NewLine, "").Replace(" ", "")"

This outputs the following

var html = "&lt;div&gt;&lt;spandata-bind=&quot;text:playerInfo.Name&quot;&gt;&lt;/span&gt;&lt;/div&gt;"
heymega
  • 9,215
  • 8
  • 42
  • 61