Store Html.Raw() in a string in Javascript, ASP.NET MVC 3
asp.net-mvc-3, javascript
Solution
What about replacing before calling the `Html.Raw`method?
var x = '@Html.Raw(myModel.FishValue.Replace("'","\\'"))'
UPDATE:
There might be other escape chars in the string coming from the model. For that reason I would recommend replacing the slashes first as well. Of course it all depends on what might come from the server in your model.
var x = '@Html.Raw(myModel.FishValue.Replace("\\","\\\\'").Replace("'","\\'"))'
A sample snippet representing the behavior in the javascript:
//Let's say my Model Content is > I'd Say \ is a escape character. You can't "Escape"
// YOu would have to replace ' --> \' and \ --> \\
var stringFromServer = 'I\'d Say \\ is a escape character. You can\'t "Escape"'
alert(stringFromServer)
Problem
I'm using ASP.NET and I have a string of HTML in the database. I want to get that html into a variable on the client. If I do this: ``` var x = '@Html.Raw(myModel.FishValue)' ``` it works fine, because it's essentially doing ``` var x = '<p>hello!</p>'; ``` however if there are quotes in the html it breaks the page. My initial guess would be to .Replace the raw string to add escapes to the quotes, however both `.ToString()` and `.ToHtmlString()` (as Html.Raw returns an IHtmlString) do not produce the same markup as simple `Html.Raw()`. So I'm at a loss of what best to do.