jQuery を使用して複雑な json データを asp.net Mvc に渡す - ModelBinder_jquery
jQuery の ajax メソッドを呼び出すと、jQuery は post または get プロトコルに従ってパラメータ データをシリアル化します。
送信されたデータが複雑な json データを使用する場合、たとえば、
{userId:32323, userName :{firstName:"李",lastName:"李大口"}}
jQuery はキーと値のペアのアセンブリを使用してデータをシリアル化するため、
メソッドを使用して完全なパラメーターを受け取ることができません。
パラメータは userId=32323&userName=object に組み立てられ、userName が指すオブジェクトは文字列 "object" にシリアル化されます。
複雑なオブジェクトを送信する方法 アクション パラメータについてはどうすればよいですか
まず、パラメーターのシリアル化に関する jQuery の問題を解決します。
/*文字列にシリアル化されたオブジェクト*/
String.toSerialize = function(obj) {
var ransferCharForJavascript = function(s) {
var newStr = s.replace (
/[x26x27x3Cx3Ex0Dx0Ax22x2Cx5Cx00]/g,
function(c) {
ascii = c.charCodeAt(0)
return '\u00' (ascii < 16 ? '0 ' ascii.toString (16) : ascii.toString(16))
}
);
return newStr;
}
if (obj == null) {
return null
}
else if (obj.constructor == Array) {
var builder = [];
builder.push("[");
for (obj の var インデックス) {
if (typeof obj[index] == "関数") 続行;
if (index > 0) builder.push(",");
builder.push(String.toSerialize(obj[index])) ;
}
builder.push("]");
return builder.join("");
else if (obj.constructor == Object) {
var builder = [];
builder.push("{");
for (obj の var key) {
if (typeof obj[key] == " function") continue;
if (index > 0) builder.push(",");
builder.push(String.format(""{0}":{1}" , key, String .toSerialize(obj[key])));
インデックス ;
builder.push("}");
return builder.join(""); >else if (obj.constructor == Boolean) {
return obj.toString();
}
else if (obj.constructor == Number) {
return obj.toString();
}
else if (obj.constructor == String) {
return String.format('"{0}"', ransferCharForJavascript(obj));
}
else if ( obj.constructor == Date) {
return String.format('{"__DataType":"Date","__thisue":{0}}', obj.getTime() - (new Date( 1970, 0, 1, 0, 0, 0)).getTime());
}
else if (this.toString != unknown) {
return String.toSerialize(obj); >}
jQuery 非同期リクエスト:
コードは次のとおりです。
];
$.post("Home/Test", { users: String.toSerialize(data) }, function(text) {
alert(String.toSerialize(text));
}, "json"))
});
ボタンをクリックしてデータを送信しますモニター ブラウザーで、送信されたデータが json オブジェクトのシリアル化されたコンテンツであることがわかります。
コードをコピー
コード
ホスト: localhost:3149
接続: キープアライブ
キャッシュ制御: キャッシュなし
Cookie: CookieGlobalLoginUserID=16063
users=[{"UserId":"11","Name":{"FirstName":"323","LastName":"2323"},"Keys":["シャオミン","シャオホン"] },{"ユーザーID":"22","名前":{"名":"323","姓":"2323"},"キー":["シャオミン","シャオホン"]},{"ユーザーID":"33","名前":{"名":"323","姓":"2323"},"キー":["シャオミン","シャオホン"]} ]
次に、バックグラウンド サーバーがパラメータ バインディングを処理します:
System.Collections.Generic を使用;
System.Web.Mvc を使用;
Newtonsoft.Json.Linq を使用
名前空間
🎜>[HandleError]
public class HomeController : Controller
{
///
/// テストメソッド
///
///
public ActionResult Test([ModelBinder(typeof(JsonBinder
{
return Json(users, JsonRequestBehavior.AllowGet)
}
}
///
// / オブジェクト エンティティ
///
[JsonObject]
public class User
{
[JsonProperty("UserName")]
public UserName Name { get;セット; }
[JsonProperty("UserId")]
public string UserId { set; }
[JsonProperty("Keys")]
public List
}
///
/// オブジェクト エンティティ
///
パブリック クラス UserName
{
[JsonProperty("FirstName")]
パブリック文字列 FirstName { セット; }
[JsonProperty("LastName")]
パブリック文字列 LastName { セット; }
///
/// Json データ バインディング クラス
///
///
public class JsonBinder
{
public object BindModel(ControllerContextcontrollerContext, ModelBindingContext bindingContext)
{
// リクエストから送信されたパラメーター データを取得します
var json =controllerContext.HttpContext.Request.Form[bindingContext.ModelName] as string;
//送信パラメータはオブジェクトです
if (json.StartsWith("{") && json.EndsWith("} " ))
{
JObject jsonBody = JObject.Parse(json);
JsonSerializer js = new JsonSerializer();
object obj = js.Deserialize(jsonBody.CreateReader(), typeof(T) ) );
return obj;
}
//送信パラメータは配列です
if (json.StartsWith("[") && json.EndsWith("]"))
{
IList
JArray jsonRsp = JArray.Parse(json);
if (jsonRsp != null)
{
for ( int i = 0; jsonRsp.Count; i )
{
JsonSerializer();
obj = js.Deserialize(jsonRsp[i].CreateReader() T)) ;
list.Add((T)obj);
}
}
return
}
}
}
フロントエンドはバックグラウンドから返されたデータを取得し、その結果がユーザーによって送信されたデータになります。
バックグラウンドの JSON デシリアライズでは Newtonsoft が使用されます。 .Json コンポーネント 関連情報については、
http://james.newtonking.com/
を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











jQuery 参照方法の詳細説明: クイック スタート ガイド jQuery は、Web サイト開発で広く使用されている人気のある JavaScript ライブラリであり、JavaScript プログラミングを簡素化し、開発者に豊富な機能を提供します。この記事では、jQuery の参照方法を詳しく紹介し、読者がすぐに使い始めるのに役立つ具体的なコード例を示します。 jQuery の導入 まず、HTML ファイルに jQuery ライブラリを導入する必要があります。 CDN リンクを通じて導入することも、ダウンロードすることもできます

はじめに 今日の急速に進化するデジタル世界では、堅牢かつ柔軟で保守可能な WEB アプリケーションを構築することが重要です。 PHPmvc アーキテクチャは、この目標を達成するための理想的なソリューションを提供します。 MVC (Model-View-Controller) は、アプリケーションのさまざまな側面を独立したコンポーネントに分離する、広く使用されている設計パターンです。 MVC アーキテクチャの基礎 MVC アーキテクチャの核となる原則は、関心事の分離です。 モデル: アプリケーションのデータとビジネス ロジックをカプセル化します。ビュー: データの表示とユーザー インタラクションの処理を担当します。コントローラー: モデルとビュー間の対話を調整し、ユーザーのリクエストとビジネス ロジックを管理します。 PHPMVC アーキテクチャ phpMVC アーキテクチャは従来の MVC パターンに従いますが、言語固有の機能も導入しています。以下はPHPMVCです

jQueryでPUTリクエストメソッドを使用するにはどうすればよいですか? jQuery で PUT リクエストを送信する方法は、他のタイプのリクエストを送信する方法と似ていますが、いくつかの詳細とパラメータ設定に注意する必要があります。 PUT リクエストは通常、データベース内のデータの更新やサーバー上のファイルの更新など、リソースを更新するために使用されます。以下は、jQuery の PUT リクエスト メソッドを使用した具体的なコード例です。まず、jQuery ライブラリ ファイルが含まれていることを確認してから、$.ajax({u

jQueryで要素の高さ属性を削除するにはどうすればよいですか?フロントエンド開発では、要素の高さ属性を操作する必要が生じることがよくあります。要素の高さを動的に変更する必要がある場合や、要素の高さ属性を削除する必要がある場合があります。この記事では、jQuery を使用して要素の高さ属性を削除する方法と、具体的なコード例を紹介します。 jQuery を使用して高さ属性を操作する前に、まず CSS の高さ属性を理解する必要があります。 height 属性は要素の高さを設定するために使用されます

タイトル: jQuery ヒント: ページ上のすべての a タグのテキストをすばやく変更する Web 開発では、ページ上の要素を変更したり操作したりする必要がよくあります。 jQuery を使用する場合、ページ内のすべての a タグのテキスト コンテンツを一度に変更する必要がある場合があります。これにより、時間と労力を節約できます。以下では、jQuery を使用してページ上のすべての a タグのテキストをすばやく変更する方法と、具体的なコード例を紹介します。まず、jQuery ライブラリ ファイルを導入し、次のコードがページに導入されていることを確認する必要があります: <

タイトル: jQuery を使用して、すべての a タグのテキスト コンテンツを変更します。 jQuery は、DOM 操作を処理するために広く使用されている人気のある JavaScript ライブラリです。 Web 開発では、ページ上のリンク タグ (タグ) のテキスト コンテンツを変更する必要が生じることがよくあります。この記事では、この目標を達成するために jQuery を使用する方法を説明し、具体的なコード例を示します。まず、jQuery ライブラリをページに導入する必要があります。 HTML ファイルに次のコードを追加します。

MVC アーキテクチャ (モデル-ビュー-コントローラー) は、コードを編成し、WEB アプリケーションの開発を簡素化するための明確な構造を提供するため、PHP 開発で最も一般的なパターンの 1 つです。基本的な MVC 原則はほとんどの Web アプリケーションには十分ですが、複雑なデータを処理したり高度な機能を実装する必要があるアプリケーションにはいくつかの制限があります。モデル層の分離 モデル層の分離は、高度な MVC アーキテクチャでは一般的な手法です。これには、モデル クラスを小さなサブクラスに分割し、それぞれが特定の機能に焦点を当てることが含まれます。たとえば、電子商取引アプリケーションの場合、メイン モデル クラスを注文モデル、製品モデル、顧客モデルに分割できます。この分離により、コードの保守性と再利用性が向上します。依存関係注入を使用する

jQuery 要素に特定の属性があるかどうかを確認するにはどうすればよいですか? jQuery を使用して DOM 要素を操作する場合、要素に特定の属性があるかどうかを判断する必要がある状況がよく発生します。この場合、jQuery が提供するメソッドを使用してこの関数を簡単に実装できます。以下では、jQuery 要素が特定の属性を持つかどうかを判断するために一般的に使用される 2 つの方法を紹介し、具体的なコード例を添付します。方法 1: attr() メソッドと typeof 演算子 // を使用して、要素に特定の属性があるかどうかを判断します
