0

我正在尝试使用@Renderpage()Webmatrix 中的方法呈现 .html 网页,但该方法不支持 .html 扩展名。我猜这个方法只支持cshtml扩展。有没有办法可以在我的网站(Webmatrix)上动态呈现 html 页面。我不想使用 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# 代码,但没有用。至少让我感到安全。这有风险吗?这种替代方案的可能威胁是什么。我希望我仍然可以从房子里得到一个替代的适当解决方案。不过谢谢。

4

2 回答 2

0

假设@Renderpage() 不支持HTML 文件,你为什么不试试Jquery.load 或Ajax。有很多基于动态加载 html 内容的教程。

于 2013-05-13T19:42:17.660 回答
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();
    }

希望这可以帮助!

于 2013-05-13T20:14:24.567 回答