我試圖返回與jQuery的數據表,它的作用是從以前的頁面推出了具有ActionLink--JQuery的數據表和ASP.NET MVC參數的ActionResult
@Html.ActionLink("View Audit", "Audit", new { id= Model.ID })
jQuery的數據表是一個視圖然後使用從Model ID傳入的ID進行預過濾。
這是我的JS文件。(順便說一下,一個靜態值,例如,10005工作在這裏的fnServerParams,但我需要的價值爲基礎的任何型號ID是從theprevious屏幕選擇上是動態的)
var oTable = $('#myAuditTable').dataTable({
"sAjaxSource": "GetAuditLog",
"fnServerParams": function (aoData)
{ aoData.push({ "name": "ID", "value": 10005 })
},
"aoColumns": [
....
這是我的Audit.cshtml頁面。
@model IEnumerable<Models.AuditLog>
<table id="myAuditTable" width="100%">
<tr>...</tr>
</table>
,並在控制器
public ActionResult GetAuditLog(int ID){
var logs = db.AuditLog.Where(c => c.ID == ID).ToList();
var result = from c in logs
select new[] { ....
};
return Json(new
{
aaData = result
}, "text/x-json", JsonRequestBehavior.AllowGet);
}
所以我通常會在MVC傳遞參數,像這樣:
public ActionResult Audit(int ID)
{
return View();
}
但由於GetAuditLog是得到結果的動作,我該怎麼辦獲取int ID到GetAuditLog操作,以便將過濾器記錄傳遞給JSON。我無法在ActionLink中調用GetAuditLog,因爲它的工作是拉取JSON,而不是渲染View。
我不確定我錯過了什麼。我已經閱讀了這篇文章,因爲他們非常全面,就整合ASP.NET和數據表而言。 http://www.codeproject.com/Articles/155422/jQuery-DataTables-and-ASP-NET-MVC-Integration-Part 但找不到與我的問題完全吻合。 這篇文章似乎接近... How do I access the JQuery DataTables plugin aoData values in MVC3? 但是不太適用,因爲他似乎正在使用一個成功的傳入參數。
感謝您的任何幫助。
感謝您的回覆。問題是將Model.ID值從前一頁的操作鏈接中獲取到隱藏字段中。因爲Audit.cshtml View使用GetAuditLog中的另一個模型,該模型依賴於上一頁傳遞的Model.ID。我能想到的唯一方法是做某種局部視圖,但不知道如何工作。 – jfbouz23 2013-05-09 14:55:56