問題タブ [jsonresult]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
json - HttpPost の後、モデルが有効でない場合にビュー (ActionResult) を返すと、応答のコンテンツ タイプは application/json になります。
ASP.NET MVC サイトの複数のページで奇妙な問題が発生しています。フォームを POST し、モデルが有効でない場合、エラーを確認できるように同じビューを返そうとしますが、ページがリロードされる代わりに、ファイルが「アプリケーション/json」形式で。以下のコードからわかるように、コントローラー メソッドは JsonResult ではなく ActionResult を返します。
フォームに入力せずに送信すると、モデルが (正しく) 検証に失敗することがわかりますが、最後の行に到達すると "return View(model);" になります。-期待するすべてのHTMLを返しますが、コンテンツタイプは「application / json」に設定されています。コードのどこにも content-type を設定していないため、なぜこれが発生するのかわかりません。他のページでも同じようなことが起きているので、何か根本的なところが間違っているのではないかと思っていますが、よくわかりません。
何かご意見は?
json - ASP.NET MVC - ViewData を使用して Json 文字列をビューに渡す
ViewData を使用して Json をビューに渡そうとしています
コントローラ
見る
しかし、私が直面している問題は、出力ソースが次のように見えることです
これは明らかに正しくありません。基本的なものが欠けていますか?
jquery - ローカルマシンとサーバーが異なるタイムゾーンにある場合、Jsonは異なる日付を返します
jsonの日付解析に奇妙な問題があります。私はjsonの日付を解析するために以下を使用しています:
ローカルマシン(クライアント)がサーバーのタイムゾーンとは異なるタイムゾーンにある場合、ユーザーの登録日を取得しようとすると、異なる日付が返されます。
例:
SQLでの登録日:2010-07-22 19:00:00.000
ISTタイムゾーンにあるローカルマシンでデバッグすると、返されるJsonResultからの日付は次のとおりです。
ESTタイムゾーンにあるデプロイ済みサーバーからアクセスしたときの同じデータで、返されるJsonResultの日付は次のとおりです。
ローカルマシンをESTタイムゾーンに変更すると、これは完全に機能します(同じ日付を返します-7月22日木曜日)。私はここで何かが欠けていますか?提案してください
サーバーコードは[編集]です:
jquery - 別のコントローラーのアクションを呼び出し、その結果を View に返す
次の機能が必要なシナリオがあります。
ビューページに JsonResult が必要ですが、問題は次のとおりです。
- RedirectToAction が redirecttorouteresult を返すため、JSonResut を直接返すことはできません
- ActionC でセッションが必要なため、コントローラーをインスタンス化してアクションを呼び出すことはできません。
json - mvc 2 jsonresult 出力
mvc 2 jsonresult の raw json 出力を確認するにはどうすればよいですか? 結果をデバッグできるようにするためにこれが必要です。
ありがとう
asp.net-mvc - ASP.Net MVC: 生の Json データに基づいて JsonResult を作成する方法
次の生のJsonデータをstring
含む(質問のために単純化されています):
JsonResult
を表すオブジェクトを作成するにはどうすればよいMyString
ですか?
Json(object) メソッドを使ってみました。ただし、生のjsonデータを文字列として処理します-論理的に:P-。したがって、返される HTTP 応答は次のようになります。
指定された生の Json データの代わりに:
これが私が達成したいことです:
asp.net-mvc - 複雑なオブジェクトから ASP.NET MVC JsonResult から Json をフィルター処理する
残念ながら、データモデル、Json から複雑なオブジェクトから投稿しようとしていますが、残念ながら、すべての階層 (person->HasMany Orders/ Orders HasMany Products など) を渡したくはありませんが、「最初のレベル」のみ (forグリッド ビューの人名の例)。
Json オブジェクトをフィルター処理し、可能であれば遅延読み込みを実行して SQL オーバーヘッドを回避するソリューションを探しています。
何か案は?
.net - ASP.NET MVC で JsonResult メッセージのバイト数を減らす
を使用してエンコードされたアクションの結果JsonResult
は、シリアライズが過度に冗長に見えます。例えば:
JavaScript は、この短いバージョンを同等のものとして完全に満足しているようです。
したがって、この質問は 2 つあります。
すべてのラベルが有効な JavaScript 識別子であると仮定すると、前者の方が優れているという理由はありますか?- ASP.NET MVC フレームワークに、この短い構文を使用してメッセージをエンコードさせることはできますか?
私はかなり AJAX を多用するアプリを作成しており、メッセージ サイズを 15% から 20% 節約できると計算しました。多くの場合、応答を単一の TCP パケットに収めるかどうかの違いになります。パフォーマンスを無視したとしても、毎月の帯域幅の請求額がそれだけ削減されることは恩恵です。
編集
Justin が指摘しているように、JSON 標準では引用符が必要ですが、純粋な JavaScript を使用するブラウザーでは引用符は必要ありません。独自の JSON シリアライザーを作成するよりも簡単な方法で、.NET Web フレームワークに引用符を削除させることはできますか?
c# - 「動的」変数を使用して匿名型からプロパティを読み取る方法
動的変数を使用して、匿名型を返すメソッドの結果をテストするという狡猾なアイデアがありました。具体的には、jsonが次のように見えるJsonResultを返します。
匿名タイプを取得するJSonResultを読み取ることができます。これが私のコードです:
しかし、たとえば「newData」を取得するにはどうすればよいですか?このコード...
System.Linq.Enumerable.WhereSelectArrayIteratorを取得しますが、doubleの配列として使用できるようにするにはどうすればよいかわかりません。
double []としてキャストしてみましたが、うまくいきません。
余談ですが、プロパティがダイナミックに定義されているかどうかを簡単に確認できますか?
arrays - 辞書を返すにはどうすればよいですかJsonResult として、そして JavaScript で適切な結果を取得しますか?
既存の JsonResult (別のメソッドから返される) にいくつかの追加情報を追加することにより、Controller で JsonResult を構築しています。さらにプロパティを追加するために、最初の JsonResult を Dictionary に変換しました。
次に、書き込みによってデータを追加するだけwrapper["..."] = "value"
です。
このメソッドは、ラッパーを .Data として、新しい JsonResult を返します。
そこから問題が始まります。通信は完全に行われ、success 関数が呼び出されますが、JavaScript で使用する結果の配列は、私が期待するきれいな構造を持っていません:val = ret.PropName1;
単純なインデックス付き配列にアクセスする必要があるため、値にアクセスする代わりに、 2つのペアを持つ辞書: { "Value"="val, "Key"="PropName1" };
(そのため、次のようなものo[0].Key
でプロパティ名が得られます)
ビューできれいな辞書を取得するために、コントローラーで JsonResult の作成を書き直すスマートで高速な方法があるかどうかを知りたいです。私にはいくつかのアイデアがありますが、それらは特にきれいではありません。サーバー側での JsonResult の再利用を捨てて、すべての適切なプロパティを持つ匿名オブジェクトを作成するだけです。または、結果を new Array() に変換できる変換関数を Javascript で作成することもできます。より良い解決策を探しています。
[後で編集]辞書が として定義されているため、配列はそのようになり<string, object>
ます。もしそうなら<string, string>
、それは私が当初期待していた方法で送られます. しかし、実際にはそのバッグのオブジェクトを使用するので、そのままにして、json 応答を以下の関数に渡します。