在webmatrix上动态呈现简单的.html页面

时间:2013-05-13 19:24:12

标签: html webmatrix

我正在尝试使用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#代码但尝试了一些安全措施但是没用。让我感到至少安全。这有风险吗?这种替代方案可能面临的威胁是什么?我希望我仍然可以从房子里找到另一种合适的解决方案。谢谢。

2 个答案:

答案 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();
    }

希望这有帮助!