を壊している、私は自分のページにロードされる項目のリストをViewBag変数を作成:ページ側で特殊文字はASP MVCコントローラでJS
public ActionResult Items()
{
ViewBag.itemList = Repo.GetItems(); // Returns list of Items
return View("Items");
}
、私はこのデータを解析しています:私のノックアウトロード機能で
@{
Newtonsoft.Json.JsonSerializerSettings jsonSettings = new Newtonsoft.Json.JsonSerializerSettings { ContractResolver = new Newtonsoft.Json.Serialization.CamelCasePropertyNamesContractResolver() };
var jsonData = @Html.Raw(Newtonsoft.Json.JsonConvert.SerializeObject(Model, Newtonsoft.Json.Formatting.Indented, jsonSettings));
var serial = new System.Web.Script.Serialization.JavaScriptSerializer();
var items = serial.Serialize(ViewBag.itemList);
}
、私はリストを解析し、JSON.parse()関数を破る改行文字を削除します。
self.load = function() {
var itemsEscaped = '@Html.Raw(items.Replace("'", "\\'"))'.replace("\n", "\\n");
var someItems = JSON.parse(itemsEscaped);
ko.mapping.fromJS(someItems, self.itemMapping, self.someItems);
}
ただし、他の特殊文字がJSON.parse()関数を壊すことがあります。これらをJS側のコントローラでフィルタリングする方法はありますか?
をチェックアウトhttp://stackoverflow.com/a/7836439/850825 – jessh
私はそのポストを見ました。私はそこに解決策を試みましたが、問題がありました。コントローラー側でこれを行う方が良いのではないでしょうか? – PaulP
JSON.parse()を破棄するデータの例を挙げてください。 –