我正在使用Kendo UI MVVM并尝试将一些文本与来自服务器的新行(\n
,而不是<br/>
)绑定到textarea(但具体控件不是这里的重点),但它不起作用。
HTML
<div id="model">
<textarea data-ng-bind="value:myText"></textarea>
</div>
<script>
$(function () {
var model = kendo.observable({
myText: '@ViewData.Eval("textWithNewLines")'
});
kendo.bind($("#model"),model);
});
</script>
服务器端代码
// GET: G4B/Home
public ActionResult Index()
{
return View("index", new { textWithNewLines = "text\nWith\nNew\nLines" });
}
这里发生的事情非常明显:@ ViewData.textWithNewLines在newLine页面中呈现,javascript被破坏。 here
但是我应该怎么做?
答案 0 :(得分:0)
解决。 从将服务器编码“\ n”的数据转换为newLine,问题就出现了。
解决方案是将我的文字包裹起来:
<script>
$(function () {
var oUtils = new G4BUtils();
var model = new kendo.observable({
myText: @Html.Raw(Json.Encode(ViewData.Eval("textWithNewLines")))
});
kendo.bind($("#model"), model);
});
</script>