--为何ajax提交不了xml?
--原因:Request.Form["Data"]这种获取参数方式,原本就不是mvc路由参数获取方式,这是Asp.net中webfrom页面获取参数的方式,只是MVC后起之秀,延用了而已。所以,你在ActionResult中加特性[ValidateInput(false)],其实是没起到作用。
--解决方案1:获取方式不变,ajax提交前对xml字符串编码encodeURIComponent();后台依然用Request.Form["Data"]方式获取,获取到之后解码HttpUtility.UrlDecode(xml);
--解决方案2:MVC路由参数传值,Ajax可以直接提交一个Json数据对象,后台ActionResult加上特性[ValidateInput(false)],并将ActionResult入参定义为对应的key或者实体类,MVC会自动反序列化为数据类。
推荐使用第二种,后台文件转化为流 byte[] bytes = Encoding.UTF8.GetBytes(Config); 使用编码正确的格式来转化