我正在编写一个生成javascript代码并发送剃刀视图的方法。但剃刀视图根据其head.Codes对此进行编码如下所示。
这是我的方法体,返回一个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);所以现在,它的输出是:
@<script>var tlyPageGuide,,"direction":"Right"像这样的东西随着编码的增长而增长。
这就是我想要的,Razor不应该在cshtml创建时更改我的代码,并且我必须获得渲染的纯javascript代码。
注意:我不想使用Html.Raw()来解决这个问题,我想在服务器端实现。
发布于 2015-03-09 03:49:24
你有没有考虑过使用局部视图?
例如:(此代码可能包含错误,但您可以理解其中的意思):
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)https://stackoverflow.com/questions/28930330
复制相似问题