ASP.NET MVC Razor从文本文件中填充了Textarea的值



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

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

您不能将列表直接设置为textarea value。因此,您需要构建string

您必须使用StringBuilder类将许多字符串串联在一起。

请尝试:

@{
    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值:

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

或简单:

<textarea>@str</textarea>

另一种方法是使用String.join

@{
    var dataFile = Server.MapPath("~/Files/myFile.txt");
    var ListFromFile= File.ReadAllLines(dataFile);
    var str = String.Join("n", ListFromFile.ToArray());
}
<textarea>@str</textarea>

我相信这可能是您要寻找的:

@{
  var dataFile = Server.MapPath("~/Files/myFile.txt");
  var ListFromFile = File.ReadAllText(dataFile);
}
@Html.TextArea("name", ListFromFile, new { cols=40, rows=5})

看来您在原始代码中两次创建文本方面,在剃须刀元素中,您的args在错误的顺序中指定了。我还更改了正在使用的文件方法,以便仅返回字符串内容而不是列表。

最新更新