Asp.net mvc Razor从文本文件中将值填充到textarea

时间:2016-11-25 20:25:40

标签: c# asp.net asp.net-mvc asp.net-mvc-4 razor

我正在尝试读取文本文件并在文本区域中填充这些值。这里我的错误是什么

 @{
        var dataFile = Server.MapPath("~/Files/myFile.txt");
        var ListFromFile= File.ReadAllLines(dataFile);
        @Html.TextArea("name", "", ListFromFile)
    }
    <textarea>
        @ListFromFile.ToList();
    </textarea>

2 个答案:

答案 0 :(得分:3)

您无法直接将列表设置为textarea值。因此,您需要构建merge into NEW_TABLE n using OLD_TABLE_C c on (/*HERE PUT JOIN CONDITION*/) when matched then update set n.col_3_ = c.col_1;

您必须使用string类在循环中将多个字符串连接在一起。

请试试这个:

StringBuilder

然后设置textarea值:

@{
    var dataFile = Server.MapPath("~/Files/myFile.txt");
    var ListFromFile= File.ReadAllLines(dataFile);
    StringBuilder sb = new StringBuilder();
    foreach (string line in ListFromFile)
    {
       sb.Append(line + "\n");   
    }
    var str = new HtmlString(sb.ToString());
}

或者简单地说:

<textarea>@Html.Raw(str)</textarea>

另一种方法是使用String.Join

<textarea>@str</textarea>

答案 1 :(得分:1)

我相信这可能就是你要找的东西:

@{
  var dataFile = Server.MapPath("~/Files/myFile.txt");
  var ListFromFile = File.ReadAllText(dataFile);

}
@Html.TextArea("name", ListFromFile, new { cols=40, rows=5})

您似乎在原始代码中创建TextArea两次,而在Razor元素中,您按照错误的顺序指定了args。我还更改了正在使用的File方法,以便只返回字符串内容而不是列表。