如何识别引号(“)

时间:2012-09-17 06:01:29

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

环境:Visual Studio 2012,MVC4,Razor,Internet Application。

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

@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 ...它会正常工作吗?

1 个答案:

答案 0 :(得分:1)

对于Javascript,我会使用“escape”进行编码,但最佳做法是将“(double)引号替换为XML表示&quot;

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

  

Microsoft.Security.Application.Encoder.HtmlEncode(HttpUtility.HtmlDecode(DR [ “消息”]。的ToString()))