2012-09-17 44 views
2

環境:的Visual Studio 2012,MVC4,剃鬚刀,互聯網應用如何識別報價符號(「)

我有在搜索表單的編碼。 」查看「 頁面...

@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「字符串r是否包含(「)或不改變它的JavaScript?

我的JavaScript代碼... url += "&[email protected]"; 如果 「model.Name」 是... 10" 機器人......將它的工作是否正確?

+2

我沒有看到任何不尋常的,這是哪裏,你說的 –

+0

JavaScript,請展示你的JavaScript碼。 –

+0

我已將它添加到我的問題結尾。 – user922907

回答

1

對於JavaScript,我將與編碼 「越獄」,但它與XML表示&quot;

至於服務器端,以取代「(雙)引號的最佳實踐,我使用Web保護庫從微軟來處理部分, http://wpl.codeplex.com/

Microsoft.Securit y.Application.Encoder.HtmlEncode(HttpUtility.HtmlDecode(VDR [「消息」]的ToString()))

+0

我已經安裝了這個庫,但我不明白在哪裏以及如何使用它。 – user922907

+0

這是幫助我的文章-http://haacked.com/archive/2010/04/06/using-antixss-as-the-default-encoder-for-asp-net.aspx –

+0

我明白了。但是這種方法返回「10 " android」。實際上沒有任何幫助。我想,我必須在JavaScript中完成這項工作。 – user922907