在asp.net MVC中读取文本文件时出错

时间:2015-10-22 04:47:08

标签: c# asp.net-mvc visual-studio streamreader

我正在使用ASP.NET MVC开发一个网站。我有多行数据,我将其存储在文本行中,并将该文本文件保存在我的应用程序的ContentData文件夹中。 我遇到的错误是找不到像这样的文件路径

  

无法找到路径'C:\ Program Files(x86)\ IIS的一部分   表达\〜\ contentData内容\ WTE.txt'

请查看我的代码并帮助我完成此操作。

这是视图:

 @{
    ViewBag.Title = "WhatToExpect";
    Layout = "~/Views/Shared/_Layout.cshtml";
    }
    <script src="https://code.jquery.com/jquery-2.1.4.js"></script>


   <h2></h2>
   @{
    int counter = 0;
    string line;

   // Read the file and display it line by line.
    System.IO.StreamReader file =  new  
    System.IO.StreamReader(@"~/ContentData/WTE.txt");
    while((line = file.ReadLine()) != null)
    {

    string notes= line;

    Html.Raw(notes);


    counter++;
    }
    <div id="ChurchImage">
    <img src="../../Images1/redeemer.jpg" alt="" /> 
    </div>
    file.Close();
    }

我尝试在文件路径中替换@。什么都没有用。请帮助我 out.Thanks提前

2 个答案:

答案 0 :(得分:3)

// Get your root directoty
var root = AppDomain.CurrentDomain.BaseDirectory;
// Read the file and display it line by line.
System.IO.StreamReader file =  new System.IO.StreamReader( root + @"/ContentData/WTE.txt");

修改

您的控制器应该像,

public ActionResult Index()
{
    var root = AppDomain.CurrentDomain.BaseDirectory;
    string line;
    System.IO.StreamReader file = new System.IO.StreamReader( root + @"/Content/Site.css");
    var fileLines = new List<string>();
    while ((line = file.ReadLine()) != null)
    {
        fileLines.Add(line);
    }
    // You can use model, temdata or viewbag to carry your data to view.
    ViewBag.File = fileLines;
    return View();
}

现在,您可以在视图中使用此ViewBag.File来呈现文件数据。

@{
    string line;
    foreach (var item in ViewBag.File)
    {
        <p>@item</p>
    }
}

答案 1 :(得分:1)

将server mappath添加到您的路径中。

System.IO.StreamReader(@Server.MapPath("~/ContentData/WTE.txt"));