【问题标题】:How to recognize a quote symbol (")如何识别引号符号 (")
【发布时间】:2013-04-02 01:17:31
【问题描述】:

环境:Visual Studio 2012、MVC4、Razor、Internet 应用程序。

我在“查看”页面中有一个带有搜索表单的代码...

@using (Html.BeginForm("SearchResult", "Home", FormMethod.Get))
{
    @Html.ValidationSummary(false)
    <fieldset>
        <legend>Contact Search</legend>
        <div class="editor-label">
            @Html.LabelFor(model => model.Name)
        </div>
        <div class="editor-field">
            @Html.EditorFor(model => model.Name)
            @Html.ValidationMessageFor(model => model.Name)
        </div>
        <p>
            <input name="SearchButton" type="submit" value="Search" /></p>
    </fieldset>
}

然后我使用“@Model.Name”将“model.Name”字符串直接发送到 JavaScript 代码。

问题是...当我在搜索表单中输入引号 (") 符号...例如... (10" android) 我遇到了问题。 JavaScript 在某处停止工作。如何检查控制器内的这个“model.Name”字符串是否包含 (") 并为 JavaScript 更改它?

我的 JavaScript 代码...url += "&amp;keywords=@Model.Name"; 如果“model.Name”是... 10" android ...它会正常工作吗?

【问题讨论】:

  • 我没有看到任何异常,你说的这个javascript在哪里
  • 请出示您的javascript代码。
  • 我已将其添加到问题的末尾。

标签: c# asp.net-mvc asp.net-mvc-3 razor


【解决方案1】:

对于 Javascript,我会使用“转义”进行编码,但最好将“(双)引号替换为 XML 表示 &amp;quot;

至于服务器端,我使用 Microsoft 的 Web Protection Library 来处理该部分, http://wpl.codeplex.com/

Microsoft.Security.Application.Encoder.HtmlEncode(HttpUtility.HtmlDecode(dr["message"].ToString()))

【讨论】:

  • 我已经安装了这个库,但我不明白应该在哪里以及如何使用它。
  • 这篇文章对我有帮助 -haacked.com/archive/2010/04/06/…
  • 我明白了。但是这个方法返回“10”android。实际上没有任何帮助。我想,我必须在 JavaScript 中完成这项工作。
猜你喜欢
  • 2017-12-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-11-28
相关资源
最近更新 更多