MVC Postに続いてJavaScriptで開く新しいウィンドウのコンテンツタイプを設定
-
29-10-2019 - |
質問
新しいウィンドウを開き、リンクがクリックされたときに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を設定しません。誰かが私がどのようにできるか知っていますか?構造全体をこれを達成するものに変更することができます。
解決
他の理由がない場合、GETリクエストを使用して、指定されたURLにウィンドウを開くだけです。
win_detail = window.open('/controller/action?mydata=' + data, 'name');
データに応じて、データを別の方法でシリアル化する必要がある場合があります。
var form_data = $('form').serialize();
win_detail = window.open( '/controller/action?' + form_data, 'name');
他のヒント
contentTypeをViewBagでViewに渡す代わりに、返す前にコントローラーに設定してみてください。
所属していません StackOverflow