如何在Javascript中使用换行符获取MVC模型数据类型字符串

时间:2014-04-17 16:20:00

标签: javascript asp.net-mvc string

我试图将数据(type = string)从我的MVC模型传递给j​​avascript函数,但我一直收到错误" Uncaught SyntaxError:Unexpected token ILLEGAL"。我认为这是由模型数据中的换行引起的,因为它只出现在多行字符串中。

这个想法是让用户按下"撤消"按钮/链接以重置文本区域。

图像:

enter image description here

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

谢谢你提前!

1 个答案:

答案 0 :(得分:1)

我在字符串上做replace(@"\n", "")

OR

使用JSON.NET JsonConvert.SerializeObject(model.data)

顺便说一句,在CSS中显示多行的东西使用这个:

{
    white-space: pre-wrap;
}