2

环境: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 += "&keywords=@Model.Name"; 如果“model.Name”是... 10" android ...它会正常工作吗?

4

1 回答 1

1

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

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

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

于 2012-09-17T06:13:07.510 回答