【问题标题】:MVC: How to open .doc file?MVC:如何打开 .doc 文件?
【发布时间】:2015-02-02 03:43:25
【问题描述】:

我有这个显示文档链接的局部视图;

@model IList<DocumentLineViewModel>
<tr>
    <td class="leftCell" style="width: 150px;">
        <label>Documents</label></td>
    <td class="rightCell" id="documentCell">
        @if (Model.Any(x => x.CurrentUrlFlag))
        {
            foreach (var document in Model)
            {
                 <a target="_blank" href="@document.CurrentUrl">
                     @document.CategoryName
                 </a>
            }
        }
        else
        {
            <span>Not Entered</span>
        }
    </td>
</tr>

如果文档是 pdf,它可以正常工作,我可以查看文档。 如果文档是 word(或 excel),我会收到这个不受欢迎的提示;

我该如何阻止这种情况?

编辑 我尝试的一种方法是将文档嵌入到弹出窗口中,但这不起作用;

@model IList<DocumentLineViewModel>
<tr>
    <td class="leftCell" style="width: 150px;">
        <label>Documents</label></td>
    <td class="rightCell" id="documentCell">
        @if (Model.Any(x => x.CurrentUrlFlag))
        {
            foreach (var document in Model)
            {
                if (document.CurrentUrl.ToUpper().EndsWith("PDF"))
                {
                    <a target="_blank" href="@document.CurrentUrl" class="btn">
                        @document.CategoryName
                    </a>
                }
                else
                {
                    <a href="#show-document" class="btn" data-toggle="modal">@document.CategoryName</a>
                    <div class="modal fade" id="show-document" style="display: none">
                        <object src="@document.CurrentUrl"><embed src="@document.CurrentUrl"></embed></object>
@*                        <iframe src="@document.CurrentUrl"></iframe>*@
                    </div>
                }
            }
        }
        else
        {
            <span>Not Entered</span>
        }
    </td>
</tr>

弹出窗口出现了,但内容没有显示文档。

【问题讨论】:

  • 你想做什么? PDF 将在浏览器中打开,因此不会提示下载。浏览器没有查看docx 文件的本机功能,因此必须下载它们。据我所知,您不能覆盖提示,因为它是用户方面的一项安全功能。
  • 这就是我正在尝试做的事情,答案是看起来做不到。
  • 你可以试试word viewer
  • @arame3333 Siva Gopal 在下面的答案中有一个有趣的观点,如果您能找到一种方法来调用 Web 文档查看器(例如 Google Docs Viewer),那肯定是解决您的问题的有趣方法。您的“链接”可能需要使用 JavaScript 通过 AJAX 将文件上传到文档查看器,然后您可能会在 iframe 或模式窗口或其他东西中打开响应,这会很酷。
  • 我尝试的解决方案不起作用,请参阅编辑后的问题以了解我做了什么。

标签: asp.net-mvc


【解决方案1】:

正如@Sippy 建议的那样,AFAIK 没有原生支持,除了浏览器提供的用于呈现文档的 PDF。

如果您可以为少数可用的转换器公开您的文档,您可以按照以下链接所示进行操作:

Google Docs Viewer

SO Post

Display word document on browser(希望对您有所帮助)

【讨论】:

  • Google 文档查看器不起作用,我怀疑是因为在我使用的 VPN 之外无法访问该 URL。我无法使用 IFrame 和 Embed 解决方案。我已经编辑了我的问题,所以你可以看到我做了什么。
  • 就像我说的那样,您需要从使用 Ajax 的位置上传文档,因为它无法访问 :)
猜你喜欢
  • 1970-01-01
  • 2022-01-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-07-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多