ac#.net MVC アプリケーションがあります。jQuery UI オートコンプリートを使用しています。オートコンプリートに送信する有効な JSON 文字列を作成し、次のようにビューに追加しました。
$(document).ready(function() {
autoCompleteParams[@Model.Id] = jQuery.parseJSON(@Html.Raw(Json.Encode(Model.ParamValueListJson)));
// Handles onchange for autocomplete
$reports.initParamList('@Model.Id');
});
の値を確認しParamValueListJson
て検証を実行するJSON
と、有効な文字列です。ただし、とても長いです。Wordに貼り付けると98ページ、424,638文字(スペース含む)。
特に結果の値をチェックするビューに返された html を見ると、文字数が 31,424 に減少したことがわかります。切り捨てられてJSON
いるため有効ではなく、「Uncaught Syntax Error: Unexpected String」というエラーが表示されます
返されるレコードを制限すると、すべてが再び機能します。しかし、私はそれを行うことはできません。オプションとしてすべての値が必要です。
これを処理する最善の方法は何ですか? 完全なJSON
文字列がビューに返されるようにすることはできますか? オートコンプリート用のオブジェクトを作成する別の方法はありますか? または、人為的に の長さを制限してからJSON
、結果をビューに結合する必要がありますか?
これに関する任意の助けをいただければ幸いです。これまでのところ、Google 検索は役に立ちませんでした。
アップデート
少し詳しく見てみると、文字列全体がビューに渡されていることがわかります。AJAX 呼び出しで返されるデータには、完全な文字列が含まれています。ただし、それが実行jQuery.parseJSON
されると、切り捨てられます。
更新 2
"
値文字列の 1 つにある を削除すると、すべて期待どおりに機能します。どうやら文字列が切り捨てられていないようdata
です。開発者ツールに表示されるパラメーターが完全な文字列を表示していなかっただけです。