2016-02-26 48 views
1

我從MVC獲取數據並使用HttpUtility.HtmlEncode對其進行編碼。問題是MVC不喜歡包含符號(&)符號的表單值。例如,這...MVC喜歡它的編碼和解碼數據

HttpUtility.HtmlEncode("'"); 

...結果在'。我把它拿來一個GET,但如果我提出這一個POST,我看到了下面的操作錯誤:

Exception = {"A potentially dangerous Request.Form value was detected from the client (selection=\"'...\")."} 

我怎麼編碼我在GET數據的方式,使MVC上POST幸福嗎?我無法將該屬性設置爲[AllowHtml],因爲模型位於第三方DLL中的一個單獨的類中,我無法控制,也不能重新實現它。

+0

轉換爲Base64String而不是編碼它。如果你喜歡,我可以給你一個JavaScript版本的轉換和Base64String –

+0

@AshkanMobayenKhiabani我也在想這個,但我們支持一些非常舊的瀏覽器與本產品,我擔心他們不支持base-64轉換,還是他們? – Alexandru

+0

@AshkanMobayenKhiabani啊,其實,沒關係!你是對的,我可以base-64編碼和解碼,因爲我的數據只能從服務器端進行編碼/解碼。 – Alexandru

回答

1

我發現串行/解串一個更好的辦法,我想和大家一起分享。由於我使用JavaScript和DataTables.NET來執行AJAX POST請求,因此我可以使用名爲Json.EncodeJson.DecodeSystem.Web.Helpers方法,因爲它們直接轉換爲JSON(JavaScript對象表示法)並返回,所以它似乎可以在JavaScript和最高MVC適合我的需求,我應該一直使用它。

+0

太好了,我也應該使用它,非常感謝 –

1

而是與編碼處理和解碼的url剛剛發佈Base64String

+0

我發現了一個序列化/反序列化的更好方法,我想與你分享;我會在短時間內回覆它。由於我使用JavaScript和DataTables.NET來執行AJAX POST請求,因此我可以使用名爲'Json.Encode'和'Json.Decode'的'System.Web.Helpers'方法,因爲它直接轉換爲JSON,JavaScript對象表示法,它可以完美地從JavaScript到MVC,我應該一直使用它。 – Alexandru