[解決済み] ASP.NET MVC 3でJSON.NETをデフォルトのJSONシリアライザーとして使用する - それは可能か?
2022-12-19 06:13:28
質問
このような場合 JSON.NET を ASP.NET MVC 3 のデフォルト JSON シリアライザーとして使用できますか?
私の調査によると、これを達成する唯一の方法は、次のように思われます。 を拡張して、ActionResult として MVC3でのJsonResultは仮想ではない ...
ASP.NET MVC 3では、JSONにシリアライズするためのプラグイン可能なプロバイダを指定する方法があることを期待していました。
感想は?
どのように解決するのですか?
私はそれを行うための最良の方法は、 - あなたのリンクに記載されているように - ActionResultを拡張するか、直接JsonResultを拡張することであると信じています。
コントローラ上で仮想でないJsonResultメソッドについては、それは真実ではなく、適切なオーバーロードを選択するだけです。これはうまく機能します。
protected override JsonResult Json(object data, string contentType, Encoding contentEncoding)
編集1 : JsonResultの拡張...
public class JsonNetResult : JsonResult
{
public override void ExecuteResult(ControllerContext context)
{
if (context == null)
throw new ArgumentNullException("context");
var response = context.HttpContext.Response;
response.ContentType = !String.IsNullOrEmpty(ContentType)
? ContentType
: "application/json";
if (ContentEncoding != null)
response.ContentEncoding = ContentEncoding;
// If you need special handling, you can call another form of SerializeObject below
var serializedObject = JsonConvert.SerializeObject(Data, Formatting.Indented);
response.Write(serializedObject);
}
編集2 : 私は、以下の提案に従って、データがNULLであることのチェックを削除しました。これは、新しいバージョンのJQueryを幸せにするはずで、そのときレスポンスが無条件にデシリアライズされることができるように、行うべき正気のことのように思われます。しかし、これは ASP.NET MVC からの JSON 応答のデフォルトの動作ではないことに注意してください。
関連
-
[解決済み] ファイルアップロード ASP.NET MVC 3.0
-
[解決済み] ASP.NETでJSONを単純なDictionary<string,string>にデシリアライズするにはどうすればよいですか?
-
[解決済み] json.netを使用して、クラス内のプロパティがnullの場合、それを無視する方法
-
[解決済み] Json.netを使用してJSONオブジェクトを動的オブジェクトにデシリアライズする。
-
[解決済み】MVC 3 web.configのwebpages:Enabledの機能は何ですか?
-
[解決済み] customerrors = "On "の場合、アプリケーションエラーが発生しない。
-
[解決済み] Razorコメント文法
-
[解決済み] razorを使ったDateTimeフォーマットの変換
-
[解決済み] Json.netを使ったJSONのパース
-
[解決済み] MVC3でCode First Entity Framework (4.1)を使って外部キー関係を宣言するにはどうしたらいいですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] 年、月、日のパラメーターは、表現できない DateTime Exception を記述します。
-
[解決済み] razor viewエンジンでの@文字のエスケープ
-
[解決済み】ASP.NET MVC3 - textareaで@Html.EditorForを使用する。
-
[解決済み】MVC 3 web.configのwebpages:Enabledの機能は何ですか?
-
[解決済み] asp.net MVC3 のカスタムエラーページ
-
[解決済み] MVC3 Razor。コードブロック内のhtmlを表示する
-
[解決済み] Razorコメント文法
-
[解決済み] asp.net mvcのMin/Max値バリデータ
-
[解決済み] razorを使ったDateTimeフォーマットの変換
-
[解決済み] jqueryでAJAX Postを使用して、強型MVC3ビューからモデルを渡す正しい方法