在MVC帖子之后设置在JavaScript中打开的新窗口的ContentType

时间:2011-06-17 19:41:39

标签: javascript ajax model-view-controller asp.net-mvc-3 contenttype

我需要打开一个新窗口,并在点击链接时将内容设置为我的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。有谁知道我怎么做?我可以改变我的整个结构,以实现这一目标。

2 个答案:

答案 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传递给视图,而是在返回之前尝试在控制器中设置它。