我试图将数据(type = string)从我的MVC模型传递给javascript函数,但我一直收到错误" Uncaught SyntaxError:Unexpected token ILLEGAL"。我认为这是由模型数据中的换行引起的,因为它只出现在多行字符串中。
这个想法是让用户按下"撤消"按钮/链接以重置文本区域。
图像:
CSHTML:
@Html.TextAreaFor(model => Model.updates[i].body, new { @Class = "txtTextArea floatLeft", @Id = "Edit_" + i.ToString(), @style = "width: 70%;", @Rows = "4", @Cols = "30" })
<a class="textRight EditToLink" onclick="clearInput('Edit_@i.ToString()', '@Html.Raw(Model.updates[i].body)')" id="EditToOneLink_@i.ToString()" href="#" >undo</a>
Javascript功能:
function clearInput(input, val) {
if (document.getElementById(input) != null) {
if (val != null) {
val.replace(/\r?\n/g, "\r\n");
document.getElementById(input).value = val;
}
else {
document.getElementById(input).value = "";
}
}
}
类似的问题: http://forums.asp.net/t/1741372.aspx?pass+model+parameter+to+javascript+function
谢谢你提前!
答案 0 :(得分:1)
我在字符串上做replace(@"\n", "")
。
OR
使用JSON.NET JsonConvert.SerializeObject(model.data)
顺便说一句,在CSS中显示多行的东西使用这个:
{
white-space: pre-wrap;
}