2015-03-08 3 views
1

Я пишу метод, генерирующий код javascript и отправляющий вид бритвы. Но вид бритвы, кодирующий это в соответствии с его головой. Коды ниже.MvcHtmlString без кодирования бритвы

Это мой метод тело, возвращая mvchtmlstring:

StringBuilder scriptHtml = new StringBuilder(); 
     scriptHtml.Append("<script>"); 
     scriptHtml.Append(@"var {0} = {{ 
        id: 'someText', 
        title: '{1}', 

       $(document).ready(function() {{ 
         $.function({0}); 
        }});"); 

     scriptHtml.Append("</script>"); 
var output = string.Format(scriptHtml.ToString(), this.Id, this.Title); 
return MvcHtmlString.Create(output); 

Итак, его выход:

@&lt;script&gt;var tlyPageGuide,,&quot;direction&quot;:&quot;Right&quot; 

Нечто подобное растет с кодированной.

Это то, что я хочу, это Бритва не должна менять свой код, пока создается cshtml, и я должен получить чистый код javascript с визуализированным.

Примечание: Я не хочу использовать Html.Raw() для решения. Я хочу сделать это на стороне сервера.

+1

, что вы имеете в виду «на стороне сервера»? Все ваши Razor Views отображаются на стороне сервера. –

+1

Я имею в виду, мне не нужен дополнительный код Html.Raw() в представлении. Я хочу закодировать его на 'return MvcHtmlString.Create (output)' или body метода, например. Кстати; Html.Raw() работает, но я не хочу использовать его каждый раз и каждый раз, когда я вызываю свой метод через Helper, как этот '@ Html.Raw (Html.MyHelper.MyMethod())'. –

ответ

1

Считаете ли вы использование частичного обзора?

Например: (этот код может содержать ошибки, но вы получите идею):

class MyScriptModel 
{ 
    public string Id {get;set;} 
    public string Title {get;set;} 
} 

//your partial view: my_partial.cshtml 
@model MyScriptModel 
//extracted from your string builder 
<script> 
     var @Model.Id = {{ 
        id: 'someText', 
        title: '@Model.Title', 

       $(document).ready(function() {{ 
         $.function(@Model.Id); 
        }}); 

</script> 

//instantiate the model 
var model = new MyScriptModel {Id="someid", Title="some title"}; 

//using your partial view 
@Html.Partial("my_partial", model) 
Смежные вопросы