0

顧客の概要の詳細を表示するために、(コントローラーから返された) 部分的なビューをレンダリングする必要があります。これは、ユーザーがボタンをクリックしたときに発生する必要があります。その間、ユーザーはグリッドでさまざまな顧客を選択できます。グリッドの選択変更イベントでjqueryを使用して、選択した顧客IDを非表示フィールドに記録します。ユーザーがボタンをクリックすると、この隠しフィールドの値 (選択された ID) をコントローラーに渡す必要があります。コントローラーは何らかの作業を行い、部分ビューを返します。次に、この部分ビューをページにレンダリングする必要があります。私は以下を試しましたが、2つの問題があります

  1. 非表示フィールドの値をコントローラーに送信する方法がわかりません
  2. 部分ビューがレンダリングされた後、ユーザーが別の顧客を選択してボタンを再度クリックすると、再レンダリングできません

コード:

  #PlaceHolder is just a div element

function DoSomwWork() {
                $('#PlaceHolder')
                .load('<%= Url.Action("GetSelectedCustSummary", 
                                      "SomeController", 
                                       new { selectedId = **HIDDEN FIELD VAL HERE** })%>');
            }
        }
4

1 に答える 1

0

私はあなたがこの方法でそれを行うことができるとは思わない.

ただし、既に MVC を使用しているため、アクション (この場合は「GetSelectedCustSummary」) を定義し、代わりに json オブジェクトを返し、jQuery で操作することができます。

更新: 次のようなアクション メソッドを定義します。

[HttpGet]
public JsonResult ActionName(string id)
{
    //some logic here to get QueryResult
    return Json(QueryResult, JsonRequestBehavior.AllowGet);
}

次に、Jquery でアクション メソッドを呼び出します。

$.ajax({
    //you can assign id dynamically
    url: '<%= Url.Content("~/Controller/ActionName/YourId") %>',
    type: 'GET',
    dataType: 'json',
    success: function (data) {
       //manipulate your div content with data
    },
    error: function (e) {
        //manipulate your div content with error
    }
});

更新ボタンをクリックするたびに、必要な ID を割り当て、Jquery 関数をトリガーします。それは私のプロジェクトで私のために働いた

于 2010-07-13T03:57:55.063 に答える