如何访问MVC3中的JQuery DataTables插件数据值?

如何访问MVC3中的JQuery DataTables插件数据值?,jquery,asp.net-mvc-3,datatables,Jquery,Asp.net Mvc 3,Datatables,我正在使用MVC3。如何访问控制器上aoData对象中fnServerParams发送的数据?谢谢 更新:这是我正在尝试使用的jquery function GenerateRows() { var serverParams = { "invoiceDate": "", "contractID": "" } serverParams.invoiceDate = $( "#InvoiceDate" ).val(); serverParams.contractID = $( "#Cont

我正在使用MVC3。如何访问控制器上aoData对象中fnServerParams发送的数据?谢谢

更新:这是我正在尝试使用的jquery

 function GenerateRows()
 {
 var serverParams = { "invoiceDate": "", "contractID": "" }

 serverParams.invoiceDate = $( "#InvoiceDate" ).val();
 serverParams.contractID = $( "#ContractID" ).val();

 $( '#invoiceRows' ).dataTable( {

    // Table style
    "bPaginate": false,
    "bLengthChange": false,
    "bSort": true,
    "bAutoWidth": false,
    "bFilter": false,
    "bServersSide": true,
    "bJQueryUI": true,
    "oTableTools": {
        "aButtons": [],
        "sRowSelect": "single"
    },
    "sDom": 'T<"clear">lfrtip',

    // Server Parameters
    "fnServerParams": function ( aoData )
    {
        aoData.push( { "name": "invoiceDate", "value": "2012-10-10" } )
    },

    // Aajax Call
    "sAjaxSource": "/Invoice/GetDailyRateBillingRows",
    "bProcessing": false,
    "bRetrieve": true,
    "aoColumns": [
                    { "sName": "Detail" },
                    { "sName": "Qty" },
                    { "sName": "Price" },
                    { "sName": "RowTotal" }
                ]
} );
}
function GenerateRows()
{
var serverParams={“invoiceDate”:“”“constructed”:“”}
serverParams.invoiceDate=$(“#invoiceDate”).val();
serverParams.contracted=$(“#contracted”).val();
$(“#发票行”)。数据表({
//桌式
“bPaginate”:错误,
“bLengthChange”:false,
“bSort”:正确,
“bAutoWidth”:假,
“bFilter”:错误,
“bServersSide”:正确,
“bJQueryUI”:没错,
“可旋转工具”:{
“阿布顿”:[],
“sRowSelect”:“单一”
},
“sDom”:“Tlfrtip”,
//服务器参数
“fnServerParams”:函数(aoData)
{
aoData.push({“名称”:“发票日期”,“值”:“2012-10-10”})
},
//Aajax调用
“sAjaxSource”:“/Invoice/GetDailRateBillingRows”,
“b处理”:false,
“bRetrieve”:没错,
“aoColumns”:[
{“sName”:“Detail”},
{“sName”:“数量”},
{“sName”:“Price”},
{“sName”:“RowTotal”}
]
} );
}
操作方法:需要接收发票日期和合同id

// Method to return InvoiceRows for DailyRate billing        
    public ActionResult GetDailyRateBillingRows(jQueryDataTableParamModel param)
    {
        // Hard coded. Need to receive parameters from Ajax post. (DataTables request.)
        DateTime invoiceDate = new DateTime(2012, 12, 31);
        int contractID = 1;


        int contractDayRate = db.Contracts.Where(c => c.Id == contractID).First().UnitRate;

        List<InvoiceRow> invoiceRows = new List<InvoiceRow>();

        List<DateTime> businessDaysOfMonth = new List<DateTime>();

        var firstDayOfMonth = new DateTime(invoiceDate.Year, invoiceDate.Month, 1);
        var lastDayOfMonth = firstDayOfMonth.AddMonths(1).AddDays(-1);

        var holidays = db.Holidays.Where(h => h.DateOfHoliday >= firstDayOfMonth && h.DateOfHoliday <= lastDayOfMonth);

        // Get all the week days into businessDaysOfMonth
        for (DateTime date = firstDayOfMonth; date <= lastDayOfMonth; date = date.AddDays(1))
        {
            if (date.DayOfWeek != DayOfWeek.Saturday && date.DayOfWeek != DayOfWeek.Sunday)
                businessDaysOfMonth.Add(date);
        }

        // Now remove the matching public holidays.
        foreach (var item in holidays)
        {
            businessDaysOfMonth.Remove(item.DateOfHoliday);
        }

        // .. and create list of invoiceRow items.
        foreach (var item in businessDaysOfMonth)
        {
            invoiceRows.Add(new InvoiceRow { InvoiceID = 0, ItemPrice = contractDayRate, RowDetail = GetDateString(item), RowQty = 1, RowTotal = contractDayRate });
        }

        var result = from c in invoiceRows
                     select new[] { c.RowDetail, c.RowQty.ToString(), c.ItemPrice.ToString(), c.RowTotal.ToString() };

        return Json(new { eEcho = param.sEcho, iTotalRecords = invoiceRows.Count(), iTotalDisplayRecords = invoiceRows.Count(), aaData = result }, JsonRequestBehavior.AllowGet);
    }

    private string GetDateString(DateTime date)
    {
        return date.ToString("dddd dd MMM yyyy");
    }

    protected override void Dispose(bool disposing)
    {
        db.Dispose();
        base.Dispose(disposing);
    }
}
//返回DailRate账单的InvoiceRows的方法
公共操作结果GetDailRateBillingRows(jQueryDataTableParamModel参数)
{
//硬编码。需要从Ajax post接收参数。(数据表请求。)
DateTime invoiceDate=新的日期时间(2012,12,31);
int-d=1;
int contractDayRate=db.Contracts.Where(c=>c.Id==contract.First().UnitRate;
List invoiceRows=新列表();
List businessDaysOfMonth=新列表();
var firstDayOfMonth=新的日期时间(invoiceDate.Year,invoiceDate.Month,1);
var lastDayOfMonth=每月第一天。添加月份(1)。添加天数(-1);

var holidays=db.holidays.Where(h=>h.DateOfHoliday>=firstDayOfMonth&&h.DateOfHoliday首先,请注意,
fnServerParams
是自1.8.2版以来的新版本,因此请确保您正在运行最新版本的dataTables

您应该能够在控制器方法(
getDailRateBillingRows
)中获得如下结果:


上述问题的可能重复更多的是一个设计模式问题。我的问题是询问如何访问控制器上的aoData您无法访问控制器上的aoData,您只能通过jQuery代码将其传递给控制器,例如通过Ajax调用。我试图将参数传递给将要使用的控制器为响应构建数据。例如,我使用以下代码://服务器参数“fnServerParams”:函数(aoData){aoData.push({“name”:“invoiceDate”,“value”:“2012-10-10”}),…这种方法错了吗?如果是的话,我如何向服务器发送额外的数据?好的-我在Request.QueryString中找到了它,因为它是一个GET!Doh,应该先查看一下。
var invoiceDate = HttpContext.Request["invoiceDate"];