我正在尝试使用Webmatrix中的@Renderpage()
方法呈现.html网页,但该方法不支持.html扩展名。我想这个方法只支持cshtml扩展。有没有办法在我的网站上动态呈现html页面(Webmatrix)。我不想使用iframe,因为我的jquery文件肯定会出现问题。
我尝试了一些我认为安全但感觉不安全的事情。我决定阅读html文件并使用以下方法手动将其注入DOM:
Array html = null;
var mypage = Server.MapPath(page);
if(File.Exists(mypage)){
html = File.ReadAllLines(mypage);
}
阅读文件后.....我将其注入DOM
<div class="s_content s fontfix left s_content2 downdown">
@foreach (var data in html) {
<text>@Html.Raw(data)</text>
}
</div>
所有这些都是在创建页面进行渲染之前的编译时间运行.....我尝试在HTML文件中注入服务器端C#代码但尝试了一些安全措施但是没用。让我感到至少安全。这有风险吗?这种替代方案可能面临的威胁是什么?我希望我仍然可以从房子里找到另一种合适的解决方案。谢谢。
答案 0 :(得分:0)
假设@Renderpage()不支持HTML文件,为什么不尝试使用Jquery.load或Ajax。有很多基于动态加载html内容的教程。
答案 1 :(得分:0)
我做了类似的事情,但我没有使用@Renderpage或html文件。相反,我使用“onclick”事件和一个打开cshtml文件的javascript函数。您只需将此脚本和java脚本函数放在hmtl部分的主cshtml文件中即可。当单击
时,它将在当前目录中打开一个名为my_window.cshtml的文件<a onclick=openWin("my_window",700,850);>Open when clicked</a>
<script type="text/javascript">
function openWin(url, width, height)
{
myWindow=window.open(url,'_blank','width='+width+',height='+height);
myWindow.focus();
}
希望这有帮助!