将TEXTAREA绑定到List <string>

时间:2019-01-09 13:03:04

标签: asp.net-mvc asp.net-mvc-4

在数据模型中,我有一个textarea绑定到List<string>

我发现在控件中输入的内容以长字符串形式返回,\r\n在换行符处位于List<string>的唯一元素中。

是否可以将每一行作为List<string>中的每个元素自动返回?

1 个答案:

答案 0 :(得分:1)

是的,可以通过编写自定义模型活页夹来实现。但是,正如格雷格(GregH)在评论中所说,仅在后端需要时,split the string at new lines可能更简单...

如果从UI角度看文本区域合适且方便,那很好。在那种情况下,我认为您坚持使用默认模型绑定程序,并且仅在需要时才转换为List<string>(例如db insert)。

否则,某些javascript可能会提供动态的输入列表-添加输入按钮。仅通过在输入元素上使用相同的属性名称,这些默认模型绑定器将自动将这些1-to-n输入元素拾取到List<string>中。参见Model binding to a list

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