情報公開システムJquery+MVCアーキテクチャ開発(9)view 2


ここで補足する必要がある2つの部分:
1.Globalです.asaxの下のルーティング設定は、私たちが理解しなければならない内容です.
VisualStudioにより生成するMVCプロジェクトにおけるGlobal.asaxファイルにRegisterRoutesメソッドがあります.
routes.MapRoute(
“Default”,//Route name
“{controller}/{action}/{id}“,//URL w/params
new { controller=”Home”,action=”Index”, id=”“}//Param defaults
);
その意味は次のとおりです.
 
1.ルーティングとは、URLからコントローラクラスへの何らかのメソッドのマッピングである
2.Actionの要求はPublicでなければならない
3.MapRouteの最初のパラメータは、デフォルトのルーティングルールを定義することを意味し、もちろん多くのルールを定義することができます.名前は「Default」
4.2番目のパラメータは、どのようなURLフォーマットが解析されるかを定義し、そのフォーマットはhttp://www.websitename.com/コントローラのクラス名/メソッド名/オプションのパラメータは、一般的にコントローラの名前がAAAControllerであることに注意してください.アクセス時にコントローラの名前は完全なAAAControllerではなくAAAです.
5.3番目のパラメータは、デフォルトの値、すなわち入力を定義します.http://www.websitename.comの場合は、デフォルトでどのコントローラやアクションメソッドにアクセスしますか.採用したのは.net3.5の匿名クラス構文.このデフォルトのコントローラはアクションと一緒に制御されていないことに注意してください.例えば、定義されたデフォルトのコントローラがホームであれば、アクセスします.http://www.websitename.comホームコントローラのindexメソッドにアクセスし、定義されたデフォルトコントローラがindexである場合、bbbコントローラにアクセスするときはhttp://www.websitename.com/bbbbbbコントローラのindexにアクセスします
1.Jsonというものも私たちに理解する必要があります.そうしないと、私のようなアーキテクチャの下では、あなたは開発できません.以下は簡単な紹介です.
簡単に言えば、JSONはJavaScriptオブジェクトで表されるデータのセットを文字列に変換し、関数間でこの文字列を簡単に渡したり、非同期アプリケーションでWebクライアントからサーバ側プログラムに文字列を渡したりすることができます.この文字列は少し変に見えますが(後でいくつかの例を参照してください)、JavaScriptは簡単に説明でき、JSONは名前/値ペアよりも複雑な構造を表すことができます.たとえば、キーや値の単純なリストだけでなく、配列や複雑なオブジェクトを表すことができます.
単純JSON例
最も簡単な形式で、以下のようなJSONで名前/値ペアを表すことができます.
 
{ "firstName": "Brett" } 

 
この例は非常に基本的であり、実際には等価な純テキスト名/値ペアよりも多くのスペースを占めています.
 
firstName=Brett

 
しかし,複数の名称/値を連ねるとJSONの価値が現れる.まず、次のような複数の名前/値のペアを含むレコードを作成できます.
 
{ "firstName": "Brett", "lastName":"McLaughlin", "email": "[email protected]" }

 
文法的には名称/値ペアに比べて大きなメリットはありませんが、この場合JSONの方が使いやすく、読みやすさが優れています.例えば、以上の3つの値が同じレコードの一部であることを明確に示す.カッコはこれらの値に何らかのつながりをもたらします.
値の配列
値のセットを表示する必要がある場合、JSONは可読性を向上させるだけでなく、複雑さを低減することができる.たとえば、人名リストを表示したいとします.XMLでは、多くの開始タグと終了タグが必要です.通常の名前/値ペア(本シリーズの前の文書で見たような名前/値ペア)を使用する場合は、固有のデータフォーマットを確立するか、キー名をperson1-firstNameに変更する必要があります.
JSONを使用する場合は、カッコ付きの複数のレコードをグループ化するだけです.
 
{ "people": [
  { "firstName": "Brett", "lastName":"McLaughlin", "email": "[email protected]" },
  { "firstName": "Jason", "lastName":"Hunter", "email": "[email protected]" },
  { "firstName": "Elliotte", "lastName":"Harold", "email": "[email protected]" }
]}

 
これは理解にかたくない.この例では、peopleという変数は1つだけで、値は3つのエントリを含む配列であり、各エントリは1人のレコードであり、名前、姓、電子メールアドレスが含まれている.上記の例では、記録をカッコで1つの値に組み合わせる方法を示します.もちろん、同じ構文を使用して複数の値を表すことができます(各値には複数のレコードが含まれます).
 
{ "programmers": [
  { "firstName": "Brett", "lastName":"McLaughlin", "email": "[email protected]" },
  { "firstName": "Jason", "lastName":"Hunter", "email": "[email protected]" },
  { "firstName": "Elliotte", "lastName":"Harold", "email": "[email protected]" }
 ],
"authors": [
  { "firstName": "Isaac", "lastName": "Asimov", "genre": "science fiction" },
  { "firstName": "Tad", "lastName": "Williams", "genre": "fantasy" },
  { "firstName": "Frank", "lastName": "Peretti", "genre": "christian fiction" }
 ],
"musicians": [
  { "firstName": "Eric", "lastName": "Clapton", "instrument": "guitar" },
  { "firstName": "Sergei", "lastName": "Rachmaninoff", "instrument": "piano" }
 ]
}

 
ここで最も注目すべきは、複数の値を表すことができ、各値にはさらに複数の値が含まれることである.ただし、レコード内の実際の名前/値のペアは、異なるプライマリ・エントリ(programmers、authors、musicians)の間で異なる場合があります.JSONは完全にダイナミックであり,JSON構造の途中でデータを表す方式を変えることができる.
JSON形式のデータを扱う場合、遵守する必要のある事前定義された制約はありません.したがって、同じデータ構造では、データを表す方法を変えることができ、同じものを異なる方法で表すこともできる.
 
    
 
    
JavaScriptでJSONを使う
JSON形式をマスターしてJavaScriptで使うと簡単です.JSONはJavaScriptのオリジナルフォーマットであり、JavaScriptでJSONデータを処理するには特別なAPIやツールパッケージが必要ないことを意味します.
JSONデータを変数に割り当てる
たとえば、新しいJavaScript変数を作成し、JSON形式のデータ文字列を直接割り当てることができます.
 
var people =
  { "programmers": [
    { "firstName": "Brett", "lastName":"McLaughlin", "email": "[email protected]" },
    { "firstName": "Jason", "lastName":"Hunter", "email": "[email protected]" },
    { "firstName": "Elliotte", "lastName":"Harold", "email": "[email protected]" }
   ],
  "authors": [
    { "firstName": "Isaac", "lastName": "Asimov", "genre": "science fiction" },
    { "firstName": "Tad", "lastName": "Williams", "genre": "fantasy" },
    { "firstName": "Frank", "lastName": "Peretti", "genre": "christian fiction" }
   ],
  "musicians": [
    { "firstName": "Eric", "lastName": "Clapton", "instrument": "guitar" },
    { "firstName": "Sergei", "lastName": "Rachmaninoff", "instrument": "piano" }
   ]
  }

 
これはとても簡単です.現在、peopleには、前に見たJSON形式のデータが含まれています.しかし、データへのアクセス方法はまだ明らかではないようです.
データへのアクセス
明らかに見えませんが、上の長い文字列は実際には配列にすぎません.この配列をJavaScript変数に入れると、簡単にアクセスできます.実際には,配列要素をドット表現で表すだけである.したがって、programmersリストの最初のエントリの姓にアクセスするには、JavaScriptで次のようなコードを使用します.
 
people.programmers[0].lastName;

 
配列インデックスはゼロから始まることに注意してください.したがって、この行のコードは、まずpeople変数のデータにアクセスする.次いで、programmersと呼ばれるエントリに移動し、第1のレコード([0])に移動する.最後に、lastNameキーの値にアクセスします.結果は文字列値「McLaughlin」です.
次は、同じ変数を使用するいくつかの例です.
 
people.authors[1].genre                       // Value is "fantasy"
 
people.musicians[3].lastName          // Undefined. This refers to the fourth entry,
 and there isn't one
 
people.programmers.[2].firstName      // Value is "Elliotte"

 
このような構文を使用すると、JavaScriptツールパッケージやAPIを追加することなく、JSON形式のデータを処理できます.
JSONデータの修正
ポイント番号と括弧でデータにアクセスできるように、同じように簡単にデータを変更できます.
 
people.musicians[1].lastName = "Rachmaninov";

 
文字列をJavaScriptオブジェクトに変換すると、このように変数のデータを変更できます.
文字列に変換
もちろん、オブジェクトを本明細書で説明したテキストフォーマットに簡単に変換できない場合、すべてのデータ変更にはあまり価値がありません.JavaScriptでは、この変換も簡単です.
 
String newJSONtext = people.toJSONString();

 
これでいい!これで、Ajaxアプリケーションの要求文字列として使用できるように、どこででも使用できるテキスト文字列が得られます.
さらに重要なのは、任意のJavaScriptオブジェクトをJSONテキストに変換できることです.JSON文字列で与えられた変数のみを扱うわけではありません.myObjectという名前のオブジェクトを変換するには、同じ形式のコマンドを実行します.
 
String myObjectInJSON = myObject.toJSONString();

 
これがJSONと本シリーズで論じた他のデータフォーマットとの最大の違いである.JSONを使えば簡単な関数を1つ呼び出すだけでフォーマットされたデータが得られ、そのまま使えます.他のデータフォーマットでは、元のデータとフォーマットされたデータの間で変換する必要があります.Document Object ModelのようなAPI(独自のデータ構造をテキストに変換する関数を提供する)を使用しても、オリジナルのJavaScriptオブジェクトや構文ではなく、このAPIを学習してAPIのオブジェクトを使用する必要があります.
最終的には、JavaScriptオブジェクトを大量に処理する場合、JSONはほとんど良い選択であり、要求でサーバ側プログラムに送信できるフォーマットに簡単にデータを変換することができると結論した.