1

单击日期选择器中的日期时,我正在尝试过滤表。我所做的是使用 $.get 将单击的日期作为 JSON 发送到我的控制器,然后使用 linq 过滤表,然后返回带有过滤表的视图作为我的模型。我使用 firebug 来检查响应,它向我显示了正确的 html,其中的表格与单击的日期匹配,但它没有显示在浏览器中。我该如何解决?

$("#adminCalendar").datepicker({
    onSelect: function (date) {
        $.get("/Administrator/DateFilter", { "date": date }, null);
    }
});

控制器:

    public ActionResult DateFilter(string date)
    {
        var dateTime = Convert.ToDateTime(date).ToShortDateString();

        var transactions = (from transaction in db.Transactions
                           select transaction).ToList();


        var tran = from transaction in transactions
                   where transaction.OccassionDate.ToShortDateString() == dateTime
                   select transaction;


        return View("Index", tran);
    }
4

1 回答 1

2

当您通过 AJAX 请求某些内容时,您应该做一些响应。在您的情况下,您可以执行以下操作:

$.get("/Administrator/DateFilter", { "date": date }).done(function (result) {
    $('#myDiv').html(result);
});

或者

$('#myDiv').load("/Administrator/DateFilter", { date: date });

您还应该添加带有myDiv显示请求结果的 id 元素。

<div id="myDiv"></div>

并将控制器中的结果从 View 更改为 PartialView 以避免发送带有布局的结果。

您还可以将 ajax 请求更改为window.location = '/Administrator/DateFilter?date=' + date. 在这种情况下,您保留操作方法的查看结果,并且不需要添加myDiv元素。

于 2013-03-02T09:12:52.513 回答