在MVC3 Razor中显示文本文件的内容

时间:2011-08-16 05:36:49

标签: file asp.net-mvc-3 razor

我正在尝试在视图中显示文本文件的内容。 到目前为止,我已经能够为控制器获取以下代码:

public ActionResult ShowFile()     
{         
     string filepath = Server.MapPath("\\some unc path\\TextFile1.txt");
     var stream = new StreamReader(filepath);         
     return File(stream.ReadToEnd(), "text/plain");      
} 

我不知道如何继续这个观点。

请告知。

2 个答案:

答案 0 :(得分:8)

好吧,您可以return Content代替它,它会将您放入响应流的任何内容呈现给响应流,响应类型为text/plain

然后你甚至不需要视图。

另外,请不要忘记处理资源和处理异常。您不希望将stream.ReadToEnd()放入回复电话中。

这样做:

[HttpGet]
public ActionResult ShowFile() {         
     string filepath = Server.MapPath("\\some unc path\\TextFile1.txt");
     string content = string.Empty;

     try {
        using (var stream = new StreamReader(filepath)) {
          content = stream.ReadToEnd();
        }
     }
     catch (Exception exc) {
       return Content("Uh oh!");
     } 

     return Content(content);
} 

答案 1 :(得分:0)

返回内容(yourText)而不是文件结果。那是文件下载。如果要在包含其他数据的视图中设置它,则创建一个viewmodel类并将文本分配给模型中的属性。