【问题标题】:Open file from ASP MVC controller从 ASP MVC 控制器打开文件
【发布时间】:2013-09-11 17:25:33
【问题描述】:

在我们的 ASP MVC 视图中,我们有指向 LAN 上文件的链接。在 IE 中这工作正常,但在 Chrome 中,您可以整天点击链接,但什么都不会发生。我们是一家 Microsoft 商店,因此某些 Office 文档似乎无法与 Google 的浏览器配合使用。

作为一种变通方法,我只想创建一个控制器方法,该方法将获取文件的位置,从Html.ActionLink 作为参数传入,然后打开它。这是我的第一次尝试:

    public void OpenAttachment(string location)
    {
        Process proc = new Process();
        proc.StartInfo = new ProcessStartInfo(location);
        proc.Start();
    }

这将打开文件只是文件,但是网页会完全空白,因为浏览器似乎试图导航到文件的位置(LAN 地址出现在导航窗口中)。

有谁知道实现这一目标的更好方法,或者我需要做些什么来调整我目前拥有的方法?

【问题讨论】:

  • 为什么不尝试纠正 Chrome 的问题?你能粘贴你的视图吗?
  • 您的链接呈现错误。使用@html.Raw(link)(从视图)解析路径。
  • @Html.Raw 只是将路径作为文本放在页面上。您的意思是在ActionLink 中使用它?
  • 是的,试试吧。正在渲染的路径看起来不对。它在那里添加&符号。

标签: c# .net asp.net-mvc asp.net-mvc-3 file-io


【解决方案1】:

不完全确定这是否是您要查找的内容,但您是否尝试过 FileResult?

public FileResult OpenAttachment(string location)
{
    return File(location, "Application/{YOURTYPEHERE}");
}

【讨论】:

    【解决方案2】:

    只需将target = "_blank" 属性添加到链接并将其用作解决方法。但是,如果有的话,会更喜欢更优雅的解决方案。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多