我试图根据下拉选定值筛选我的结果。所有过滤和一切工作,我只是努力让我的看法更新与结果。我要离开了一些支架和其他不相关的代码下面是我:使用Ajax将数据从控制器传递到视图以筛选结果
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);
我阿贾克斯成功函数没有做任何事情无论是所以我猜这需要一些调整。以下是我如何使用表格标签显示表格。请记住我留下了一些代码了,但一切都重要的是在这里,唯一的问题是不用翻译我的过滤结果返回给视图,
@foreach (var item in Model) {
<tr><td>
@Html.DisplayFor(modelItem => item.Invoice_Number)
@Html.DisplayFor(modelItem => item.Amt_Total)
</td>
这似乎是工作jQuery代码,但现在我得到的错误信息是:有没有类型的视图数据...有关键的“DDLItems”在我的视图中填充我的下拉列表@ Html.DropDownList(“DDLItems”) – CSharper
我在NonAction方法中重新填充了我的下拉列表,它摆脱了错误消息,但仍然没有任何事情发生 – CSharper
您是否调试过Ajax成功调用中的数据? –