0

我有行动:

[HttpGet]
public ActionResult GetMenuContentFileToDisplay(int menuItemId)
{
    //......
    return File(fileAttributes.FilePath, fileAttributes.InternetMediaType,
                        Uri.EscapeUriString(fileAttributes.FileName));
}

我想使用这种方法(允许您接收文件)在 iframe 中显示内容。是否可以为显示 HTM 文件实现此功能?

这部分是必要的,因为对用户隐藏文件结构并且需要检查文件权限。

我会很感激任何想法。

4

1 回答 1

0

如果要内联显示文件,可以使用 iframe:

<iframe src="@Url.Action("GetMenuContentFileToDisplay", new { menuItemId = "5" })"></iframe>

为避免文件被下载,您不应为其提供文件名,而应仅提供Content-Type

[HttpGet]
public ActionResult GetMenuContentFileToDisplay(int menuItemId)
{
    return File(
        fileAttributes.FilePath, 
        fileAttributes.InternetMediaType
    );
}

显然,这仅在浏览器识别文件内容类型时才有效(例如它是 atext/htmltext/plain)。否则浏览器会再次提示用户下载文件。

于 2013-03-27T07:08:35.020 回答