我正在尝试读取文本文件并在文本区域中填充这些值。我在这里的错误是什么
@{
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在错误的顺序中指定了。我还更改了正在使用的文件方法,以便仅返回字符串内容而不是列表。