我的代码
{
var textarea='@Html.TextAreaFor(m=>m.Content)'
$('#boxPhanThuong').append(textarea);
}
在控制台中我有:
我不知道如何修复它。 Html.textboxbor或dropdownlistfor很好,但Html.textareafor不是。
答案 0 :(得分:0)
给予浏览器的Html.TextAreaFor(m=>m.Content)
输出可能包括换行符。
简单示例:
var textarea='<textarea id="Content">
</textarea>';
而且,在JavaScript中,字符串文字不允许逐字包含换行符。他们必须逃脱,Razor不会为你做的。
然而,您可以利用JavaScript和JSON的相似性以及Json.Encode()
来输出标记,以便JavaScript理解它。但是,这需要额外的设置:
var textarea=@Html.Raw(Json.Encode(Html.TextAreaFor(m => m.Content).ToHtmlString()));
其他补充是:
.ToHtmlString()
提供Json.Encode()
string
而不是object
。Html.Raw()
阻止Json.Encode()
成为HTML编码的结果 - "<textarea ...
- 因为<script>
无法理解这些结果。对于简单的例子,结果如下:
var textarea="<textarea id=\"Content\">\n</textarea>";