0

ボタンクリックの AJAX 呼び出しを使用して、部分ビューでグリッドを更新しようとしています。しかし、ボタンのクリック方法が正しく機能していません。

次のコード スニペットは、実行に使用しているコードです

Jクエリ

 <script  type="text/javascript">
$(document).ready(function () {
    $("#fromDate").datepicker({
        changeMonth: true,
        changeYear: true
    });
    $("#toDate").datepicker({
        changeMonth: true,
        changeYear: true
    });
});

//function buttonClick() {

$("#btnSearch").click($.ajax({
    url: 'Report/SearchGrid',
    type: "POST",
    success: function (html) {}
}));

//}
    </script>

レーザーコード

<input type="button" value="Search" id="btnSearch" onclick= "buttonClick();" style="width: 90px; border: solid 1px #1570a6; background-color: #1570a6; color: #FFFFFF; font-weight: 100;" />

コントローラーコード

public ActionResult SearchGrid(ExpenseReportModel model)
{
    ExpenseReportModel expModel = new ExpenseReportModel();
    expModel.ExpenseList = GetExpenseList();
    expModel.ExpenseFromDate = Convert.ToDateTime(model.ExpenseFromDate);
    expModel.ExpenseToDate = Convert.ToDateTime(model.ExpenseToDate);

    return PartialView("_GridData", expModel.ExpenseList);
}
4

1 に答える 1

0

コードから、コントローラーにデータを渡している場所や、結果をフォームに設定している場所がわかりません。呼び出しは次のようになります

$('#btnSearch').on('click', function(){
     $.ajax({
         url: "@(Url.Action("Action", "Controller"))",
         type: "POST",
         data: { from: $('.FromDate').val(), to: $('.ToDate').val() },
         cache: false,
         async: true,
         success: function (result) {
             $(".Content").html(result);
         }
     });
});

次に、コントローラーで、モデル全体ではなく、from および to のパラメーターを受け入れます。ここでポストバックを行っていないため、モデル全体がコントローラーに送り返されません。ご不明な点がございましたら、お知らせください。

于 2013-09-24T22:25:33.800 に答える