我試圖根據下拉選定值篩選我的結果。所有過濾和一切工作,我只是努力讓我的看法更新與結果。我要離開了一些支架和其他不相關的代碼下面是我:使用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成功調用中的數據? –