我需要在iframe中显示物理文件夹内容。这个iframe位于内部,MVC视图在Layout的RenderBody()动作中调用,该动作用AngularJS指令标记。我的页面显示了iframe,并且设置了src属性,但它没有显示任何内容。我的目标就像在浏览器中显示文件夹内容一样简单。我在这里附加了我的MVC控制器和View代码以及使用RenderBody的Layout中的部分。提前谢谢。
查看
@using System.Configuration
@using System.Web.Optimization
@using ReportViewerForMvc;
@model HtmlString
@{
ViewBag.Title = "Reports";
Layout = "~/Areas/Authorization/Views/Shared/Layout.cshtml";
ViewData["Module"] = "sbo-auth";
}
@section PageTitle
{
<h5 class="page-title">Reports</h5>
}
<div id="root">
@if (Model != null)
{
<iframe id="iframe" src="@Model"></iframe>
}
else
{
<h3>The path to reports server is incorrect.</h3>
}
</div>
@Scripts.Render("~/bundles/Authorization")
控制器
[Authorize]
[Route("reports-repository")]
public ActionResult ReportsFileExplorer()
{
var path = (!string.IsNullOrEmpty(ConfigurationManager.AppSettings["EodReportsPath"])
&& System.IO.Directory.Exists(ConfigurationManager.AppSettings["EodReportsPath"]))
? new HtmlString(new Uri(ConfigurationManager.AppSettings["EodReportsPath"]).AbsoluteUri)
: null;
return View("ReportsFileExplorer", path);
}
布局部分
<div class="page-container row-fluid">
<!-- BEGIN SIDEBAR -->
<div class="page-sidebar nav-collapse collapse">
@Html.MvcSiteMap().Menu(false)
</div>
<!-- END SIDEBAR -->
<!-- BEGIN PAGE -->
<div class="page-content">
<!-- BEGIN PAGE CONTAINER-->
<div class="container-fluid" ng-cloak>
@RenderBody()
</div>
<!-- END PAGE CONTAINER-->
</div>
<!-- END PAGE -->
</div>