html.textareafor - 解析成字符串数组

Dev*_*emi 1 c# asp.net asp.net-mvc

我在 C# MVC (.NET) 中,并且有一个表单,我在其中输入 @html.TextAreaFor 存储为字符串我假设来自此文本框的数据将存储为字符串,但我想知道如何将就“/n”元素而言,字符串外观是否会分隔新的行标记?

理想情况下,我需要逐行解析文本框,其中每一行上的字符串成为一个列表的元素例如,如果我们在文本框中

  item1
  item2
  item3
Run Code Online (Sandbox Code Playgroud)

然后,当我提交表单时,我指定的模型将与文本框的字符串一起加载,并使用该字符串我们将加载我们的列表(在其他地方,在不同的模型中......)与 item1、item2 和 item3 .

Tet*_*oto 5

假设您TextAreaFor绑定到一个名为的模型属性TextAreaModel,该属性包含来自用户输入的字符串,如下所示:

@model ViewModel

@Html.TextAreaFor(m => m.TextAreaModel, new { ... })
Run Code Online (Sandbox Code Playgroud)

从模型属性中提取行的正确方法是使用Environment.NewLinePOST 操作方法中的分隔符拆分字符串内容,如下例所示:

[HttpPost]
public ActionResult SubmitForm(ViewModel model)
{
    // other stuff   

    // parse every textarea lines as list elements
    List<string> list = model.TextAreaModel.Split(new string[] { Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries).ToList();

    // assign it to other list property on other model
    OtherModel.OtherList = list;

    // other stuff

    return View(model);
}
Run Code Online (Sandbox Code Playgroud)

注意:StringSplitOptions.RemoveEmptyEntries将删除在源字符串中找到的空行,我认为这是比使用StringSplitOptions.None.

演示:

.NET Fiddle 示例 - 按换行符拆分

.NET Fiddle 示例 - MVC 实现

相关问题:

如何逐行解析来自文本区域的用户输入