我需要打开一个新窗口,并在点击链接时将内容设置为我的MVC控制器发送的内容。这就是我目前正在做的事情。
jQuery.ajax({
type: "POST",
url: '/controller/mycontroller',
data: { mydata: data },
error: function (xhr, status, error) {
},
success: function (response) {
win_detail = window.open('', 'name');
win_detail.document.write(response);
}
});
控制器当前正在处理页面上的html并将其放入ViewBag中。它还将Response.ContentType放在ViewBag中。我的mycontroller.cshtml我有类似的东西。
@{
Response.ContentType = ViewBag.ContentType;
}
<head></head>
<body>
@ViewBag.MyHtml
</body>
这实际上并没有设置ContentType。有谁知道我怎么做?我可以改变我的整个结构,以实现这一目标。
答案 0 :(得分:2)
如果没有其他原因,我会尝试使用GET请求,只需打开给定网址的窗口。
win_detail = window.open('/controller/action?mydata=' + data, 'name');
根据您的数据,您可能需要以不同方式对其进行序列化。
var form_data = $('form').serialize();
win_detail = window.open( '/controller/action?' + form_data, 'name');
答案 1 :(得分:0)
不要通过ViewBag将ContentType传递给视图,而是在返回之前尝试在控制器中设置它。