4

私は asp.net MVC を使用して単純な Web サイトを開発しており、JQuery\JSON の利点を追加し始めています。

私の問題は、これまですべての「ビュー」が厳密に型指定されており、ViewData.Model.MyViewsData のデータに基づいてビューを構築してきたことです。ビューがレンダリングされ、Ajax スタイルのリクエストを実行すると、新しいデータが JSON として返され、ビューを更新する必要があります。元のすべての ViewData にアクセスできなくなった場合、新しいデータでビューを更新するにはどうすればよいでしょうか?

常に Jquery\JSON を使用してデータを取得し、ViewData の使用を忘れるか、ビューの何らかの部分レンダリングを行うかのいずれかが必要だと思います。

チュートリアルやサンプルをいただければ幸いです。

どうもありがとう

4

3 に答える 3

4

私はMVCフレームワークにjQueryとMonorailを使用していますが、両方のアプローチを使用しています。

これがjqueryアプローチの例です-それがphpであるという事実を無視してください。アプローチは同じです。つまり、JSON呼び出しのpostback関数では、JSON returnオブジェクトに直接アクセスして、cssセレクターを介してアクセスされるフロントエンドコントロールにデータを入力します。

別の方法は非常に似ています(ここにアーカイブされています)-コントロールの内容を手動で設定する代わりに、部分ビューで返されたhtmlを適用するだけです(メニューなどのhtmlフラグメントだけが必要ないため、レイアウトがキャンセルされるようにします)。

于 2008-10-28T16:12:13.357 に答える
3

ViewData はサーバー側のものです。これは、ブラウザーに送信される前にページをレンダリングするために、ビュー エンジンによって使用されます。ページが配信された後、Javascript がブラウザーで実行されます。したがって、$.getJson などを呼び出すと、厳密に DOM を処理することになります。

これは、 JQuery と MS MVC を介して選択オプションを埋める非常に簡単な例です。

于 2008-10-28T17:59:02.283 に答える
0

コントローラのJSONメソッドを使用してAjaxリクエストのデータを返す場合は、データをJsonにシリアル化すると、JavaScript内からデータにアクセスできます。たとえば、Article / Blog Postページの下部にコメントフォームがあり、jQuery $ .post呼び出しを介してコメントを追加したい場合は、コントローラーでコメントオブジェクトを作成し、「 JSON(theNewComment);を返す 次に、jQueryのreturn関数で、コメントオブジェクトのプロパティにアクセスできます。インテリセンスは得られませんが、オブジェクトが適切に作成されて返された場合、データはそこにあります。

その時点で、jQueryのDOM操作機能を使用して、新しい値をコメントリスト(または更新しようとしているもの)にプラグインする必要があります。

これはAjax呼び出しであるため、すべてのViewDataは必要ありません(ページは更新されないため)。作成/更新されたものだけが必要です。

于 2008-10-30T19:41:12.403 に答える