代码之家  ›  专栏  ›  技术社区  ›  Old Geezer

将文本区域绑定到列表<string>

  •  0
  • Old Geezer  · 技术社区  · 7 年前

    我有一个 textarea 一定要 List<string> 在数据模型中。

    我发现在控件中输入的内容作为一个长字符串返回,带有 \r\n 换行时,在 列表<字符串> .

    是否可以将每一行自动返回为 列表<字符串> ?

    1 回复  |  直到 7 年前
        1
  •  1
  •   Khyron    7 年前

    是的,通过编写自定义模型活页夹,这是可能的。然而,正如格雷格在评论中所说,这可能更简单 split the string at new lines 只有在后端需要的地方。。。

    如果一个文本区域从用户界面的角度来看是合适和方便的,那就太好了。在这种情况下,我认为您应该坚持使用默认的model binder,只转换为 List<string> 需要时(如db insert)。

    否则,可以使用一些javascript——一个添加输入按钮——来创建一个动态的输入列表。这些1对n的输入元素将由默认的模型绑定器拾取到 列表<字符串> 只需在输入元素上使用相同的属性名即可自动执行。看见 Model binding to a list

    这里只有两个相关的html元素: textarea input 它们之间的区别在于,文本区域本机允许多行(文本换行和/或换行),而输入不能。在文本区域中按enter键创建新行,而在输入中按enter键提交整个表单。