如何直接从响应中将html和css渲染到iframe中

运用

return Content(htmlText, "text/html"); 

 return Content(cssText, "text/css"); 

在我的动作方法中,htmlText和cssText是html和css字符串,如何在不影响我的主应用程序的情况下将这些响应添加到iframe中?

我怀疑这与服务器端代码关系不大,而与客户端代码有关。 不要将服务器端代码视为“渲染到帧”,它没有帧的概念。 相反,在客户端代码中,当用户位于自身包含框架的界面上时,您可以使用以下内容导航该框架:

 window.frames['framename'].document.location.href = 'someurl'; 

因此,假设您的服务器端代码具有一个“父”操作,该操作呈现整个客户端接口。 在该接口(视图)中有一个iframe本身引用另一个动作,特别是返回此动作的动作:

 return Content(htmlText, "text/html"); 

该框架将从该动作获取其HTML。 服务器端代码对此没有任何了解,它只是响应请求。 浏览器正在管理来自帧的请求。

然后,“父”视图可以通过更新其location.href来触发帧重新请求,如上所述。

此外,您可能希望对帧使用POST请求,而不是仅更改URL(这将仅发出GET请求)。 在这种情况下,“父”页面(包含框架)可以包含具有target属性的form 。 像这样的东西:

 
form elements go here

触发该表单上的提交(使用提交按钮或JavaScript代码)应该只导致该帧重新加载,发布表单并在该帧中呈现结果。