C# 将文件添加到";内容“;

C# 将文件添加到";内容“;,c#,asp.net-mvc,C#,Asp.net Mvc,我有一个C#4 MVC项目 我想向我的内容文件夹中添加一个文件,并能够下载它,如https://{myurl}/content/myfile.txt 那不行。答复是: The resource you are looking for has been removed, had its name changed, or is temporarily unavailable. 但是,https://{myurl}/Content/Site.css会下载Site.css文件 我想我缺少了一些愚蠢的配

我有一个C#4 MVC项目

我想向我的内容文件夹中添加一个文件,并能够下载它,如https://{myurl}/content/myfile.txt

那不行。答复是:

The resource you are looking for has been removed, had its name changed, or is temporarily unavailable.
但是,https://{myurl}/Content/Site.css会下载Site.css文件

我想我缺少了一些愚蠢的配置,但我甚至不知道用什么术语来搜索它

谢谢。

可能的原因:

  • 文件不在那里(即,您完全忘记添加它,或者您将它添加到project中,但没有标记为内容,在以后的情况下,部署站点后文件将不在那里)。检查文件是否存在(应与site.css或任何其他有效文件位于服务器上的同一文件夹中)。
    • TXT(或您使用的任何其他扩展)配置为通过MVC,而CSS则不是。如前所述,潜在的修复方法是
      RouteExistingFiles=false


这是一个我没有找到的方法。相反,我为文件添加了到主控制器的路由

因此,现在我的站点响应/{myfile.txt},在HomeController中执行如下操作:

public FileResult GetMyFile()
    {
        return File(Server.MapPath(@"/Content/myfile.txt"),  "text/plain");
    }

对于一些文件,它工作得很好。这可能更好(因为我可以添加安全性或其他逻辑)。

马克,谢谢,但我不明白你的意思。我有一个文件在我的服务器上,想得到一个固定的Url下载它。谢谢。该文件已存在(已验证)。RouteExistingFiles=true实际上是相反的情况(仍在尝试基于此的一些替代方案)。@rufo,right应该是
RouteExistingFiles=false
,以便按原样提供文件。是的。。。我试过了,因为某种原因它不起作用。事实上,我更喜欢下面的解决方案。谢谢+1澄清。Mark,恕我直言,我认为您的回答与我的问题无关(是的,我确实使用Server.MapPath,但我的问题不是基于虚拟路径定位物理路径)。您的答案没有提到在控制器中创建FileResult操作以下载文件。谢谢,但我不能接受你的回答。