获取的代码中包含“<”、"/"等特殊字符后台就不能接收。
前台JS代码:
$("#btn").click(function () {
// var txt = "tttttttttttt";
var txt = document.getElementsByTagName('html')[0].innerHTML;
alert(txt);
//$("#op").val(txt);
// var txt1 = $("#op").val();
// alert(txt1);
// // var txt = $("#celog").html();
// //var txt = $("h3").innerHTML;
//// var tx = document.getElementById("h2").value();
// //alert(txt);
// //var text = JSON.stringify(txt);
// $.post("/ZDLog/Totxt", { namestr: JSON.stringify(txt1) });
$.ajax({
url: "/ZDLog/Totxt",
type: "post",
data: "namestr=" + txt,
dataType:"UTF-8",
success: function (data) {
if (data =true) {
alert("保存成功!");
}
else {
alert("保存失败");
}
}
});
});
后台方法:
[HttpPost]
public bool Totxt(string namestr)
{
if (namestr != null)
{
StreamWriter sw = new StreamWriter(@"D:\\1234.doc", true, System.Text.Encoding.UTF8);
sw.Write(namestr );
sw.Flush();
sw.Dispose();
return true;
}
else
{
return false;
}
}
[HttpPost] [ValidateInput(false)]
谢谢大神,试了下可以了。
怎么会捏、页面name保持字段一致。
上面这个函数可以接收普通字符串,但是传HTML代码namestr就为null。
@m869485074: 获取html的元素的话...貌似应该用dom那种的接收吧。追加个...那啥来着、忘了。找找看
@g皓皓: 谢谢了,楼下大神说方法加个[ValidateInput(false)]特性就可以了。
转义撒
贴一下错误信息。
按你的描述,在ToTxt方法上加上特性
[ValidateInput(false)]
谢谢,真的可以。
用jsonresult returnjson