JavaScript:如何在文本框中设置包含引号的值

时间:2015-04-30 12:49:50

标签: javascript asp.net-mvc-5

我有一个MVC项目,我将数据存储在数据库中,其中一个视图包含用于编辑此数据的文本框。

由于具体细节,我不能直接通过TextBoxFor(),EditorFor()等创建文本框,但必须用JavaScript影响值,所以我要做的是在页面加载时在javascript代码中写入所需的值,此代码稍后被触发以影响文本框值。

$("#textboxID").val("@HTML.Raw(Model.value)");

这样可以正常工作,直到其中一个字符串中有引号。

当我直接输入

$("#textboxID").val("@Model.value");

它将采用HTML编码,引号写为> & quot;(没有cource空间)

我发现正确输出引号的唯一方法是使用反斜杠\转义它们但是我似乎无法找到帮助它来做到这一点。 有解决方案吗?我做错了吗?

目前,我找到了一个灵感来自Filipe Borges建议的解决方法

@Html.Raw(Html.Encode(Model.Libelle).Replace(""", "\\\""))

这非常难看,但至少它解决了这个问题,我感谢任何人提出更好的解决方案。

3 个答案:

答案 0 :(得分:1)

目前,我找到了一个灵感来自Filipe Borges建议的解决方法

@Html.Raw(Html.Encode(Model.Libelle).Replace(""", "\\\""))

它非常丑陋,但至少它解决了这个问题,我感谢任何人提出更好的解决方案。

答案 1 :(得分:0)

解决使用:

@Html.Raw(Html.Encode(Model.value).Replace(""", "\\\""))

首先建议使用"\"替换为@Model.value.replace(""", "\\\""),但它不起作用,因为在mvc应用默认html编码后,该值仅包含"。 / p>

编辑:Souhaieb Besbes的最终解决方案。编辑我的不是出错。

答案 2 :(得分:0)

您可以使用单引号显示双引号,如下所示:

$("#textboxID").val('"'+@Model.value+'"');