Javascript ajax函数未返回预期的输出
控制器正在返回:Javascript ajax函数未返回预期的输出,javascript,ajax,asp.net-mvc-4,model-view-controller,Javascript,Ajax,Asp.net Mvc 4,Model View Controller,控制器正在返回: return Json(new { html = "<html><body>HELLO</body></html>" },JsonRequestBehavior.AllowGet); 返回Json(新的{html=“HELLO”},JsonRequestBehavior.AllowGet); 这只是一个字符串“HELLO” 我的json函数如下所示: function callPrint() { var Pri
return Json(new { html = "<html><body>HELLO</body></html>" },JsonRequestBehavior.AllowGet);
返回Json(新的{html=“HELLO”},JsonRequestBehavior.AllowGet);
这只是一个字符串“HELLO”
我的json函数如下所示:
function callPrint() {
var PrintCssContent = "";
$.ajax({
url: '@Url.Action("GetHtmlString", "Itinerary", new { area = "Travel" })',
dataType: "text",
success: function (data) {
alert(data);
WinPrint.document.write(data);
WinPrint.document.write(DivMainContent.innerHTML.toString());
WinPrint.document.write("</body></html>");
WinPrint.document.close();
WinPrint.focus();
WinPrint.print();
WinPrint.close();
},
error:function(){
alert('error');
}
});
return false;
}
函数callPrint(){
var PrintCssContent=“”;
$.ajax({
url:'@url.Action(“GetHtmlString”,“行程”,new{area=“Travel”}),
数据类型:“文本”,
成功:功能(数据){
警报(数据);
WinPrint.document.write(数据);
WinPrint.document.write(DivMainContent.innerHTML.toString());
WinPrint.document.write(“”);
WinPrint.document.close();
WinPrint.focus();
print.print();
WinPrint.close();
},
错误:函数(){
警报(“错误”);
}
});
返回false;
}
但json警报将返回如下内容:
{“html”:“\u003chtml\u003e\u003cbody\u003eHELLO\u003c/body\u003e\u003c/html\u003e”}
如何使用my json函数简单地返回“HELLO”?您需要使用
json.Parse
返回json数据。将您的警报
语句更改为
var parseData = JSON.parse(data);
alert(parseData.html);
希望这有帮助 您需要使用
JSON.Parse
返回JSON数据。将您的警报
语句更改为
var parseData = JSON.parse(data);
alert(parseData.html);
希望这有帮助 您需要将结果转换为json,然后打印出来,下面是代码:
function callPrint() {
var PrintCssContent = "";
$.ajax({
url: '@Url.Action("GetHtmlString", "Itinerary", new { area = "Travel" })',
dataType: "text",
success: function (data) {
var dataParsed = JSON.parse(data);
WinPrint.document.write("<html><body>");
WinPrint.document.write(dataParsed.html);
// WinPrint.document.write(DivMainContent.innerHTML.toString());
WinPrint.document.write("</body></html>");
WinPrint.document.close();
WinPrint.focus();
WinPrint.print();
WinPrint.close();
},
error:function(){
alert('error');
}
});
return false;
}
函数callPrint(){
var PrintCssContent=“”;
$.ajax({
url:'@url.Action(“GetHtmlString”,“行程”,new{area=“Travel”}),
数据类型:“文本”,
成功:功能(数据){
var dataParsed=JSON.parse(数据);
WinPrint.document.write(“”);
WinPrint.document.write(dataParsed.html);
//WinPrint.document.write(DivMainContent.innerHTML.toString());
WinPrint.document.write(“”);
WinPrint.document.close();
WinPrint.focus();
print.print();
WinPrint.close();
},
错误:函数(){
警报(“错误”);
}
});
返回false;
}
您需要将结果转换为json,然后打印出来,下面是代码:
function callPrint() {
var PrintCssContent = "";
$.ajax({
url: '@Url.Action("GetHtmlString", "Itinerary", new { area = "Travel" })',
dataType: "text",
success: function (data) {
var dataParsed = JSON.parse(data);
WinPrint.document.write("<html><body>");
WinPrint.document.write(dataParsed.html);
// WinPrint.document.write(DivMainContent.innerHTML.toString());
WinPrint.document.write("</body></html>");
WinPrint.document.close();
WinPrint.focus();
WinPrint.print();
WinPrint.close();
},
error:function(){
alert('error');
}
});
return false;
}
函数callPrint(){
var PrintCssContent=“”;
$.ajax({
url:'@url.Action(“GetHtmlString”,“行程”,new{area=“Travel”}),
数据类型:“文本”,
成功:功能(数据){
var dataParsed=JSON.parse(数据);
WinPrint.document.write(“”);
WinPrint.document.write(dataParsed.html);
//WinPrint.document.write(DivMainContent.innerHTML.toString());
WinPrint.document.write(“”);
WinPrint.document.close();
WinPrint.focus();
print.print();
WinPrint.close();
},
错误:函数(){
警报(“错误”);
}
});
返回false;
}
很抱歉,AJAX函数只能返回“HELLO”,您应该返回一个json,其html
等于“HELLO”。您可以将其包装在HTML标记中。进一步使用data.html
我将从我的mvc控制器ActionResult返回整个html页面。因此,首先我尝试返回Json(new{html=“HELLO”},JsonRequestBehavior.AllowGet);仅用于测试目的。我可以给出的一个技巧是在控制台中编写输出。firefox和chrome都提供带有详细视图的日志。您可以很容易地理解从ajax响应中得到了什么。Ex-console.log(数据);如果我删除了警报(parseData.html);我想用window.print打印数据,而不是在警报框中显示数据。那么我该如何实现这一点呢?对不起,这是AJAX函数,只返回“HELLO”,您应该返回一个json,其中html
等于“HELLO”。您可以将其包装在HTML标记中。进一步使用data.html
我将从我的mvc控制器ActionResult返回整个html页面。因此,首先我尝试返回Json(new{html=“HELLO”},JsonRequestBehavior.AllowGet);仅用于测试目的。我可以给出的一个技巧是在控制台中编写输出。firefox和chrome都提供带有详细视图的日志。您可以很容易地理解从ajax响应中得到了什么。Ex-console.log(数据);如果我删除了警报(parseData.html);我想用window.print打印数据,而不是在警报框中显示数据。那么我如何才能实现这一点呢?它返回:[object]他不需要在这里解析。他有一个JSON和一个包含HTML标记的字段,所以他只需要data.HTML
就可以了appended@whitelettersinblankpapers但是他的JSON(正如他在这里提到的)中有unicode字符<代码>{“html”:“\u003chtml\u003e\u003cbody\u003eHELLO\u003c/body\u003e\u003c/html\u003e”}我们需要在显示之前对其进行分析。@rohit更新了我的答案。请检查。是的,我必须解析unicode字符。让我检查你的解决方案。它返回:[object]他不需要在这里解析。他有一个JSON和一个包含HTML标记的字段,所以他只需要data.HTML
就可以了appended@whitelettersinblankpapers但是他的JSON(正如他在这里提到的)中有unicode字符<代码>{“html”:“\u003chtml\u003e\u003cbody\u003eHELLO\u003c/body\u003e\u003c/html\u003e”}我们需要在显示之前对其进行分析。@rohit更新了我的答案。请检查。是的,我必须解析unicode字符。让我检查一下您的解决方案。它返回“undefined”奇怪,请尝试数据['html']或数据[0]。html//不太可能最后一个想法是var parsedData=JSON.parse(data);如果删除警报(parseData.html),则发出警报(parsedData.html);我不想在警报框中显示数据,而是想使用window.print打印。那么我该如何实现这一点?它返回“未定义”奇怪,请尝试数据['html']或数据[0]。html//不太可能的最后一个想法是var parsedData=JSON.parse(data);如果删除警报(pa),则发出警报(parsedData.html)