6

パラメータを提供するためにajaxを使用してHTMl.RenderActionを使用することは可能ですか?

私はこのようなコントローラーアクションを持っています

[ChildActionOnly]
Public ActionResult EmployeeData(string id)
{
    Employee employee = new Employee();
    //do work to get data

    Return PartialView(employee);
}

部分ビューは、いくつかの従業員データ (名前、住所など) を含む小さなテーブルです。

次に、データ フィールドが EmployeeData(string id) に必要な ID である従業員のドロップ ダウン リストを含むページを作成します。

ajax を使用したいので、従業員がドロップダウン リストから選択されると、ページを更新せずに EmployeeData 部分ビューがその下に表示されます。次に、別の従業員が選択された場合。

可能であれば、これを行う方法はわかりませんが。


ここで推奨されたように、私が今持っているものです。(これは上記の従業員データの例ではないことを気にしないでください。データは DB で準備ができておらず、これと同じことを行う複数の領域があるため、今日これに取り組むことにしました)

ここに私のJSがあります

  $("#repList").change(function () {
    var id = $("#repList").val();
    $.ajax({
        url: '/Reporting/GetSalesTargets/' + id,
        success: function (result) {

              $("#partialdiv").html(result);
        },
        error: function () {
            alert("error");
            }
    });
});

ビューを返すコントローラーアクションに到達しています。これがそれです。

public ActionResult GetSalesTargets(string id)
{
    int month = DateTime.Now.Month;
    SalesMarketingReportingService mktSrv = new SalesMarketingReportingService();

    SalesTargetModel model = mktSrv.GetRSMSalesTargetModel(id, month);

    return PartialView(model);
}
4

1 に答える 1

17

可能ですが、[ChildActionOnly]属性を削除する必要があります。AJAX を使用して呼び出すことができる部分ビューを返す通常のアクションになります。

$.ajax({
    url: '/home/employeedata/123',
    success: function(result) {
        $('#somedivid').html(result);
    }
});
于 2010-09-13T18:45:09.463 に答える