我正在尝试根据下拉选择的值过滤我的结果。所有的过滤和一切都在工作,我只是在努力让我的观点更新结果。我省略了一些括号和其他不相关的代码这是我所拥有的:
public ViewResult Index()
{
-- this effectively returns all Invoices no matter what date --
var data = new UserBAL().GetInvoice(date);
return View(data);
}
我的 Jquery 和 Ajax 是:
$(document).ready(function () {
$("[name='DDLItems']").change(function () {
var selection = $("[name='DDLItems']").val();
var dataToSend = {
//variable to hold selection?
idDate: selection
};
$.ajax({
type: "POST",
url: "Invoice/FilterInvoice",
data: dataToSend,
success: function (data) {
$("#Index").html(data);
}
[HttpPost] // Selected DDL value
public ActionResult FilterInvoice(int idDate)
{
switch (idDate)
{
case 0:
date = DateTime.Parse("01-01-1754");
break;
case 3:
date = DateTime.Now.AddMonths(-12);
break;
}
//var data is returning my expected results
var data = new UserBAL().GetInvoice(date);
// I know this isn't right and needs to be changed
return View(data);
我的 ajax 成功函数也没有做任何事情所以我猜这需要一些调整。这也是我使用表格标签显示表格的方式。请记住,我遗漏了一些代码,但所有重要的东西都在这里,唯一的问题是将过滤后的结果渲染回视图,
@foreach (var item in Model) {
<tr><td>
@Html.DisplayFor(modelItem => item.Invoice_Number)
@Html.DisplayFor(modelItem => item.Amt_Total)
</td>