在MVC中包含html(不是cshtml)作为局部视图

时间:2016-09-17 16:57:37

标签: asp.net-mvc asp.net-mvc-4

我的SPA和MVC viewengine(页脚)都使用了html文件。我想分享这个,但我不知道如何在MVC中呈现html文件。 RenderPartial似乎无法运作 - 因此我被File.ReadAllText困住了。是否有一种干净的方法来使用MVC呈现html部分?

1 个答案:

答案 0 :(得分:1)

使用 Html.Action

查看:

<div>
     @Html.Action("LoadHtmlPage","Home", new { @path = Url.Content("~/Views/Home/Home.html") })
</div>

<强>控制器:

[ChildActionOnly]
public ActionResult LoadHtmlPage(string path)
{
    return new FilePathResult(path, "text/html");
}

注意:这会打开一个漏洞,因为任何人都可以使用该控制器操作来获取您网站上的任何文件。最简单的解决方法是将[ChildActionOnly]属性应用于控制器操作,以便浏览器无法直接访问它