2

環境:Visual Studio 2012、MVC4、Razor、インターネットアプリケーション。

「表示」ページに検索フォーム付きのコードがあります...

@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の場合、「escape」でエンコードしますが、「(double)quotes」をXML表現に置き換えることをお勧めします。&quot;

サーバー側については、MicrosoftのWeb Protection Libraryを使用して、その部分を処理してい ます。http://wpl.codeplex.com/

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

于 2012-09-17T06:13:07.510 に答える