从客户端(ExportContent="...ontinuous <br />Pass Count":13...")中检测到有潜在危险的 Request.Form 值。
mvc中,用chrome浏览器导出excel提示如题错误的解决办法。
<system.web>
<httpRuntime requestValidationMode="2.0" targetFramework="4.5" />
<pages validateRequest="false" >
[ValidateInput(false)]
public ActionResult GridToExcel()
{
if (Request["ExportContent"] != "")
{
string listname = Request["listname"];
string sheetname = Request["sheetname"];
string tmpContent = Request["ExportContent"];//获取传递上来的文件内容
DataTable dt = Utility.ToDataTable(tmpContent);////rptSource.Tables[0];
//ExcelHelper.DataTable3Excel(dt, RptName);
Workbook b = FileExportExcel.OutFileToDisk(dt, listname, sheetname);
string filename = listname + "_" + DateTime.Now.ToString("yyyyMMddHHiiss");
return File(b.SaveToStream().ToArray(), "application/octet-stream", filename + ".xls");
}
else
{
return null;
}
//test();
//return null;
}
public static DataTable ToDataTable(string json)
{
DataTable dataTable = new DataTable(); //实例化
DataTable result;
try
{
JavaScriptSerializer javaScriptSerializer = new JavaScriptSerializer();
javaScriptSerializer.MaxJsonLength = Int32.MaxValue; //取得最大数值
ArrayList arrayList = javaScriptSerializer.Deserialize<ArrayList>(json);
if (arrayList.Count > )
{
foreach (Dictionary<string, object> dictionary in arrayList)
{
if (dictionary.Keys.Count<string>() == )
{
result = dataTable;
return result;
}
if (dataTable.Columns.Count == )
{
string s = "";
Type aa = s.GetType();
double f = 0.001d;
Type bb = f.GetType();
int i = ;
Type cc = i.GetType();
foreach (string current in dictionary.Keys)
{
if (object.Equals(dictionary[current], null))
dataTable.Columns.Add(current, aa);
else
dataTable.Columns.Add(current, dictionary[current].GetType() == cc ? bb : dictionary[current].GetType());
}
}
DataRow dataRow = dataTable.NewRow();
foreach (string current in dictionary.Keys)
{
dataRow[current] = dictionary[current];
} dataTable.Rows.Add(dataRow); //循环添加行到DataTable中
}
}
}
catch (Exception e)
{
}
result = dataTable;
return result;
}
using Aspose.Cells; public static Workbook OutFileToDisk(DataTable dt, string tableName, string sheetname = "", string path = "")
{ Workbook workbook = new Workbook(); //工作簿
Worksheet sheet = workbook.Worksheets[]; //工作表\
if (!string.IsNullOrEmpty(sheetname))
{
sheet.Name = sheetname;
}
Cells cells = sheet.Cells;//单元格 //为标题设置样式
Style styleTitle = workbook.Styles[workbook.Styles.Add()];//新增样式
styleTitle.HorizontalAlignment = TextAlignmentType.Center;//文字居中
styleTitle.Font.Name = "宋体";//文字字体
styleTitle.Font.Size = ;//文字大小
styleTitle.Font.IsBold = true;//粗体 //样式2
Style style2 = workbook.Styles[workbook.Styles.Add()];//新增样式
style2.HorizontalAlignment = TextAlignmentType.Center;//文字居中
//style2.Font.Name = "宋体";//文字字体
//style2.Font.Size = 14;//文字大小
style2.Font.IsBold = true;//粗体
style2.IsTextWrapped = true;//单元格内容自动换行
style2.Borders[BorderType.LeftBorder].LineStyle = CellBorderType.Thin;
style2.Borders[BorderType.RightBorder].LineStyle = CellBorderType.Thin;
style2.Borders[BorderType.TopBorder].LineStyle = CellBorderType.Thin;
style2.Borders[BorderType.BottomBorder].LineStyle = CellBorderType.Thin; //样式3
Style style3 = workbook.Styles[workbook.Styles.Add()];//新增样式
//style3.HorizontalAlignment = TextAlignmentType.Center;//文字居中
style3.Font.Name = "宋体";//文字字体
//style3.Font.Size = 12;//文字大小
style3.Borders[BorderType.LeftBorder].LineStyle = CellBorderType.Thin;
style3.Borders[BorderType.RightBorder].LineStyle = CellBorderType.Thin;
style3.Borders[BorderType.TopBorder].LineStyle = CellBorderType.Thin;
style3.Borders[BorderType.BottomBorder].LineStyle = CellBorderType.Thin; int Colnum = dt.Columns.Count;//表格列数
int Rownum = dt.Rows.Count;//表格行数
//插入图片 //FileStream fs = new FileStream(HttpContext.Current.Server.MapPath("~/Scripts/Image") + "/excelImage.png", FileMode.Open);
//byte[] byteData = new byte[fs.Length];
//fs.Read(byteData, 0, byteData.Length);
//fs.Close();
//cells.Merge(0, 0, 1, Colnum);//合并单元格
//cells[0, 0].PutValue(byteData);//填写内容
//cells.SetRowHeight(0, 38);
sheet.Pictures.Add(, , HttpContext.Current.Server.MapPath("~/Scripts/Image") + "/excelImage.png", , );
//生成行1 标题行
cells.Merge(, , , Colnum);//合并单元格
cells[, ].PutValue(tableName);//填写内容
cells[, ].SetStyle(styleTitle);
cells.SetRowHeight(, ); //生成行2 列名行
for (int i = ; i < Colnum; i++)
{
cells[, i].PutValue(dt.Columns[i].ColumnName);
cells[, i].SetStyle(style2);
//cells.SetRowHeight(1, 25);
} //生成数据行
for (int i = ; i < Rownum; i++)
{
for (int k = ; k < Colnum; k++)
{
cells[ + i, k].PutValue(dt.Rows[i][k]);//.ToString()
cells[ + i, k].SetStyle(style3);
}
//cells.SetRowHeight(2 + i, 24);
} return workbook;
//workbook.Save(path);
}
function GridtoExcel(grid, listname, sheetname) {
var records = [];
var colu = [];
for (var i = 1; i < grid.columns.length; i++) {
if ((grid.columns[i].text === "") || (grid.columns[i].getId() === "")) {
}
else {
var dic = new Object();
dic.text = grid.columns[i].text;
dic.value = grid.columns[i].dataIndex;
colu.push(dic);
}
}
if (grid.getStore().data.items.length > 0) {
for (var i = 0; i < grid.getStore().data.items.length; i++) {
var object = new Object;
var item = grid.getStore().data.items[i].data;
for (var j = 0; j < colu.length; j++) {
var daIndex = eval([colu[j].value]);
object[colu[j].text] = item[daIndex[0]];
}
records.push(object);
}
}
else {
var object = new Object;
for (var j = 0; j < colu.length; j++) {
object[colu[j].text] = null;
}
records.push(object);
}
if (records.length > 0) {
var tempForm = document.createElement("form");
tempForm.action = '/Home/GridToExcel';
tempForm.method = "POST";
tempForm.target = "_blank";
var hideInput = document.createElement("input");
hideInput.type = "hidden";
hideInput.name = "ExportContent"
hideInput.value = Ext.JSON.encode(records);
tempForm.appendChild(hideInput);
var hideInput1 = document.createElement("input");
hideInput1.type = "hidden";
hideInput1.name = "listname"
hideInput1.value = listname;
tempForm.appendChild(hideInput1);
var hideInput2 = document.createElement("input");
hideInput2.type = "hidden";
hideInput2.name = "sheetname"
hideInput2.value = sheetname;
tempForm.appendChild(hideInput2);
tempForm.style.display = 'none';
// tempForm.get(0).encoding = 'application/json';
document.body.appendChild(tempForm);
tempForm.submit();
document.body.removeChild(tempForm);
}
else {
//
}
}
从客户端(ExportContent="...ontinuous <br />Pass Count":13...")中检测到有潜在危险的 Request.Form 值。的更多相关文章
- 从客户端(SeekingJobs="<B>·</B> 物流规划,<B>·</...")中检测到有潜在危险的 Request.Form 值。
今天提交各东西发觉出错了,错误信息如下: “/”应用程序中的服务器错误. 从客户端(SeekingJobs="<B>·</B> 物流规划,<B>·< ...
- 从客户端(ASPxFormLayout1$txtRule="<YYYY><MM><DD><XXXX>")中检测到有潜在危险的 Request.Form 值
在有文本框的值属于这种时<YYYY><MM><DD><XXXX>,会报这个错 在webconfig中加入 <httpRuntime request ...
- 使用百度编辑器时,报错:从客户端("...)中检测到有潜在危险的 Request.Form 值
ajax请求失败,提交不上去 起初没找到报错的这句话,可能由于我用了其他第三方插件的原因,后来改动了一下,出现了这个错误 然后百度得到答案:http://www.cnblogs.com/tearer/ ...
- 从客户端中检测到有潜在危险的 Request.Form 值] 处理办法
当asp.net提交<>这些字符到aspx页面时,如果未设置 validaterequest="false",就会出现错误:从客户端(<?xml version= ...
- asp.net 从客户端中检测到有潜在危险的 Request.Form 值错误解
从客户端(ftbContent="<P><A href="http://l...")中检测到有潜在危险的 Request.Form 值. 说明: 请求验 ...
- Asp.net mvc3的“从客户端中检测到有潜在危险的 Request.Form 值”问题解决
Asp.net mvc3的“从客户端(content_v=\",<p>\n\t<imgalt=\"\" src...\")中检测到有潜在危险的 ...
- 从客户端(CourseIssueContent="<P>财务审计师岗位认证招生简章<BR>...")中检测到有潜在危险的 Request.Form 值。
说明: 请求验证过程检测到有潜在危险的客户端输入值,对请求的处理已经中止.该值可能指示危及应用程序安全的尝试,如跨站点的脚本攻击.通过在 Page 指令或 配置节中设置 validateRequest ...
- "从客户端中检测到有潜在危险的 Request.Form 值"的解决方案汇总
#事故现场 在一个asp.net 的项目中,前端通过ajax将富文本中的文字内容post到服务端的一个ashx中,在ashx中尝试读取参数值时, 结果报错:“从客户端中检测到有潜在危险的 Reques ...
- 客户端向服务端传送特殊字符解决方法(检测到有潜在危险的 Request.Form 值)
当客户端向服务端传输特殊字符时报错,错误信息如下图:
随机推荐
- Docker背后的内核知识(二)
cgroups资源限制 上一节中Docker背后的内核知识(一),我们了解了Docker背后使用的资源隔离技术namespace,通过系统调用构建了一个相对隔离的shell环境,也可以称之为简单的“容 ...
- R语言分析朝阳医院数据
R语言分析朝阳医院数据 本次实践通过分析朝阳医院2016年销售数据,得出“月均消费次数”.“月均消费金额”.“客单价”.“消费趋势”等结果,并据此作出可视化图形. 一.读取数据: library(op ...
- 设计模式之第8章-策略模式(Java实现)
设计模式之第8章-策略模式(Java实现) “年前大酬宾了啊,现在理发冲500送300,冲1000送500了.鱼哥赶紧充钱啊,理发这事基本一个月一回,挺实惠的啊.不过话说那个理发店的老板好傻啊,冲10 ...
- UNIX 系统中 wc 程序的主要部分
以下代码为 UNIX 系统中 wc 程序的骨干部分 #include <stdio.h> #define IN 1 #define OUT 0 int main(int argc, cha ...
- Jmeter随笔一
资料分享:http://www.cnblogs.com/yangxia-test/p/3964881.html
- ROM+VGA 图片显示
内容 1.将一幅图片制成mif文件,初始化rom,图片像素为 120 * 60 2.驱动VGA,将图片显示在屏幕上 1.VGA 时序 下面是我的笔记截图,感觉更好理解. 2.640*480 60hz ...
- TortoiseGit保存用户名和密码的方法
TortoiseGit在提交或者pull时总会提示你输入用户名密码,非常麻烦,那如何解决呢? 1. 对于TortoiseGit 1.8.1.2及其后的版本,右键选择settings ——> Gi ...
- hihoCoder #1661 数组区间
题目大意 给出 $1$ 到 $n$ 的一个排列($n\le 10^5$),记做 $a_1, a_2, \dots, a_n$ .(注:原题面表述为:"给定 $n$ 个互不相同且不超过 $n$ ...
- BZOJ3309 DZY Loves Math 【莫比乌斯反演】
题目 对于正整数n,定义f(n)为n所含质因子的最大幂指数.例如f(1960)=f(2^3 * 5^1 * 7^2)=3, f(10007)=1, f(1)=0. 给定正整数a,b,求sigma(si ...
- cf 341D lahub and xors
题目大意 给定初始值为\(0\)的\(n*n\)矩阵 两种操作 矩形内异或一个值 求矩阵内异或和 \(n\le 1000\) 分析 二维线段树标记不下传貌似直接可做 有没有更简便的方法? 考虑异或的特 ...