同じビューを対象とする 2 つのコントローラー アクションがあります。つまり、View from controller アクションの呼び出しでビュー名を指定しました。2 番目のアクションは、HTML 文字列を ViewBag に入れます。この html 文字列をビューに表示したいだけです。私が試してみました
@ViewBag.HtmlDoc
と
@Html.Raw(ViewBag.HtmlDoc)
しかし、何もレンダリングされません。
どんな助けでも大歓迎です。前もって感謝します。
--コントローラーコード---
public ActionResult ShowReport(string URL)
{
string tableString = "";
[Code to Create table called ReportTable and add rows etc]
tableString = RenderControlToString(ReportTable );
ViewBag.Table= tableString;
return View("ShowReport");
}
View で ViewBag.Table をデバッグしたところ、html 文字列が表示されました。しかし、ビューが更新/レンダリングされることはありません。次のような単純なテキストでテストしました。
@if (ViewBag.Table != null)
{
//@ViewBag.Table;
@:The day is: @DateTime.Now.DayOfWeek.
}
コードに入るので、ViewBag.Table が null ではないことがわかりますが、文字列もレンダリングされません。
_layout.cshtml で RenderBody() を更新する必要がありますか? またはその趣旨の何か?
-- ajax 呼び出し --
ボタンの onclick イベントは、次の ajax メソッドを呼び出します。
$.ajax({
url: "/Home/ShowReport",
data: { URL: urlString} ,
type: 'POST',
success: function(data) {
alert(data);
},
error: function (e, textStatus, jqXHR) {
alert(e.statusText);
}
});