Asp.net mvc 4 使用jqgrid导出到mvc4 razor中的excel

Asp.net mvc 4 使用jqgrid导出到mvc4 razor中的excel,asp.net-mvc-4,razor,jqgrid,Asp.net Mvc 4,Razor,Jqgrid,我正在使用jqgrid和export to excel我的Razor代码如下所示: //Set and activate navigations jQuery("#analyticGridPager").jqGrid('navGrid', '#analyticGridPager', { add: false, edit: false, del: false, search: false }, {}, {}, {}

我正在使用jqgrid和export to excel我的Razor代码如下所示:

//Set and activate navigations
        jQuery("#analyticGridPager").jqGrid('navGrid', '#analyticGridPager', { add: false, edit: false, del: false, search: false },
                                  {}, {}, {}, { multipleSearch: false, overlay: false, width: 480 }).jqGrid('navButtonAdd',
                '#analyticGridPager',
                {
                    caption: " Export to Excel ",
                    buttonicon: "ui-icon-bookmark",
                    onClickButton: function () {
                        exportExcel($(this));
                    }, position: "last"
                });

function exportExcel() {
            grid = $("#analyticGrid")
            var mya = new Array();
            mya = grid.getDataIDs();  // Get All IDs
            var data = grid.getRowData(mya[0]);     // Get First row to get the labels
            var colNames = new Array();
            var ii = 0;
            for (var i in data) { colNames[ii++] = i; }    // capture col names
            var html = "";
            for (k = 0; k < colNames.length; k++) {
                html = html + colNames[k] + "\t";
                // output each Column as tab delimited
            }
            html = html + "\n";                    // Output header with end of line
            for (i = 0; i < mya.length; i++) {
                data = grid.getRowData(mya[i]); // get each row
                for (j = 0; j < colNames.length; j++) {
                    html = html + data[colNames[j]] + "\t"; // output each Row as tab delimited
                }
                html = html + "\n";  // output each row with end of line

            }
            html = html + "\n";  // end of line at the end
            //alert(html);
            var params = { "htmlMarkup": html }
            var str = jQuery.param(params);
            window.open("/Analytics/CsvExport?" + str, '_blank')
        }

请纠正我做错的地方。

请替换为以下内容,它将正常工作

同时更新您的web.config

更新控制器操作。 字符串htmlMarkup=Request.QueryString[“htmlMarkup”].ToString()

更新您的web.cofig

   <httpRuntime targetFramework="4.5" requestValidationMode="2.0"  maxUrlLength="10999" relaxedUrlToFileSystemMapping="true"   maxQueryStringLength="2097151" enable="true" executionTimeout="60000" maxRequestLength="30000000" />

        Response.ClearContent();
        Response.AddHeader("content-disposition", "attachment; filename=MyExcelFile.xls");



        byte[] contents = Encoding.ASCII.GetBytes(htmlMarkup);

        Response.End();
        return File(contents, "application/excel");
   <httpRuntime targetFramework="4.5" requestValidationMode="2.0"  maxUrlLength="10999" relaxedUrlToFileSystemMapping="true"   maxQueryStringLength="2097151" enable="true" executionTimeout="60000" maxRequestLength="30000000" />