【发布时间】:2015-06-23 12:53:09
【问题描述】:
我正在使用微型 mce。我想从小 mce 的 textarea 中获取 html 元素。我尝试用 ajax 调用来做 tat。我有一个 pdf 按钮,它将从 html 生成一个 PDF。我有这个:
public ActionResult GeneratePDFFOrProductHandler(EditProductModel model, string data)
{
SubmittedForm sf = new SubmittedForm();
string schema = requestSchema;
customer_DbConnection db = new customer_DbConnection();
RenderFormController renderController = new RenderFormController();
renderController.GeneratePdf(data, db, sf);
return RedirectToAction(model.DesignId, "Prdocut/Edit");
//return View(model);
}
和 ajax 调用:
function GenerateHTMLTOPDF() {
$.ajax({
type: "POST",
url: '@Url.Action("GeneratePDFFOrProductHandler", "Product")',
data: {},
success: function (data) {
alert(tinyMCE.get('tinymce').getContent());
alert("data from ajax = " + data.toString()); // data is html
$("#tinymce").html(data); // does not set anything
},
error: function (request, status, error) {
alert(tinyMCE.activeEditor.getContent());
alert(request.responseText);
}
});
}
控制器中的方法被调用。但是数据每次都是空的。
谢谢
生成 PDF 的按钮是这样的:
<button type="submit" value="GeneratePDFFOrProductHandler" id="btnGeneratePDF" onclick="GenerateHTMLTOPDF()" class="btn btn-success"><i class="fa fa-fw fa-check"></i> @Resources.Action.Navigation.GeneratePDF</button>
但是如何在浏览器的新标签页中生成pdf呢?
谢谢
但如果我试试这个:
function GenerateHTMLTOPDF() {
var data = tinyMCE.get('tinymce').getContent();
$.ajax({
type: "POST",
url: '@Url.Action("GeneratePDFFOrProductHandler", "Product")',
data: {data:data},
success: function (data) {
alert('success');
alert("data from ajax = " + data.toString()); // data is html
},
error: function (request, status, error) {
alert(tinyMCE.activeEditor.getContent());
alert(request.responseText);
}
});
}
甚至没有调用控制器方法
【问题讨论】:
-
您没有向控制器发送任何内容。
data: {},这是您发送给您的方法的内容 -
关于新标签的事情:你永远不能强制这样做,因为它是本地浏览器设置。但是,您可以建议打开一个新选项卡/窗口,如果用户的设置允许它会这样做。看看这个问题:stackoverflow.com/questions/4907843/…
-
第二次调用未命中您的方法的原因是未指定 dataType。尝试添加 dataType: 'json',或查看下面的答案。
标签: c# jquery asp.net-mvc tinymce-4