2015-12-14 69 views
0

我有以下的JavaScript函數...jQuery的數據表 - ASP.NET控制器參數總是空

function loadTable(date: string) { 
    $('#myDataTable').DataTable({ 
    "bServerSide": false, 
    "sAjaxSource": "Date/GetValuesFromDate", 
    "data": date 
    "bAutoWidth": false, 
    "bProcessing": true, 
    "aoColumns": [ 
     { "sName": "MESSAGE" }, 
     { "sName": "DATE" }, 
     { "sName": "STATUS" } 
    ] 
    "bDestroy":true 
    }); 

... 

這就要求我的ASP.NET Web應用程序下面的控制器......

public class DateController : Controller 
{ 
    private RegistrationDbContext _context; 

    public HomeController(RegistrationDbContext context) 
    { 
    _context = context; 
    } 

    public ActionResult GetValuesFromDate(string date) 
    { 
    // Some code here... 
    return Json(new 
     { 
     aaData = results; 
     }); 
    } 
} 

但是,字符串日期的值始終爲空。我看到loadTable()函數確實包含日期,所以我現在不知道如何將它傳遞給控制器​​本身...

我硬編碼的日期和一切工作wonderfull所以這裏唯一缺少的一塊是JavaScript功能和控制器之間的綁定...

任何指針? 謝謝!

+0

在JavaScript中你有「數據」:日期,這意味着正在發送的日期具有參數名稱的數據。嘗試將其更改爲「日期」:日期 – Dhunt

+0

我更改爲「日期」:日期並且它仍然爲空。我錯過了什麼嗎? – user3587624

+0

嘗試通過Fiddler捕獲發送的信息,並向我們顯示正在發送的請求。 –

回答

1

嘗試在{} IE

'data': {'date': date} 

結束了該數據PARAM或者你可以直接把它添加到您的源鏈接,我認爲作爲查詢字符串,因爲它是一個GET ...

"sAjaxSource": "Date/GetValuesFromDate?date=" + date 
+0

將日期附加到sAjaxSource工作!非常感謝!。我會盡力進一步調查,因爲我不喜歡這種設計作爲永久解決方案。謝謝! – user3587624

+1

是的,我知道這是icky,我不會建議永久這樣做...我有一段時間沒有玩過DataTable,儘管如此,我提供它作爲替代解決方案,並希望能夠讓你一直到你可以實現一個更好的 –